zhou-hj

1、先是使用ID定位,发现定位不到元素,原来163邮箱用的是动态ID,然后就改用name定位,也可以用xpath或css定位

 

2、然后发现还是定位不到元素,上网查了以后才知道使用了iframe框架,需要先定位到相应的iframe

frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而言是一样的
selenium提供了switch_to.frame(reference)来切换frame
reference是传入的参数,用来定位frame,可以传入id、name、index以及selenium的WebElement对象

 index从0开始,传入整型参数即判定为用index定位,传入str参数则判定为用id/name定位

 WebElement对象,即用find_element系列方法所取得的对象,我们可以用tag_name、xpath等来定位frame对象

 我用的chrome浏览器,先使用了driver.switch_to.frame("x-URS-iframe"),定位不到元素

 再使用的driver.switch_to.frame(driver.find_element_by_xpath("//*[@id=\"x-URS-iframe\"]"))可以成功定位到元素

分类:

技术点:

相关文章: