selenium定位frame(iframe)的问题

明明元素就在那,firebug也可以看到,但是无论怎么定位还是定位不到的时候,需要检查下页面是否含有iframe,你需要定位的元素是否在iframe之中,有可能就是因为iframe的问题。在一个default content中查找一个在iframe 中的元素,那肯定是找不到,同样你在一个iframe 中查找另一个iframe元素或default content中的元素,那必然也定位不到

切换到frame之中

selenium提供了switch_to_frame()方法来切换frame,

driver.switch_to.frame(reference)


reference是传入的参数,用来定位frame,可以传入id、name、index以及selenium的WebElement对象

reference一般输id,但是也有动态id的情况,可以使用xpath定位,然后传入WebElement对象

从frame之中切换到default content主文档

切换进入frame之中后,我们就不能对主文档的元素进行操作了,如果需要操作,那么我们只能再切换回去

driver.switch_to.default_content()

遇到嵌套的frame

遇到嵌套的frame的时候,也就是一个frame里面还有一个frame的时候,我们要一层一层切换进去,如

driver.switch_to.frame("frame1")   
driver.switch_to.frame("frame2")

如果我们已经切换到frame2中,那么我们要返回frame之中怎么办。selenium为我们提供了一个后退的方法。

driver.switch_to.parent_frame()

如果当前已经是主文档了,那么后退没有效果

你可能感兴趣的:(selenium定位frame(iframe)的问题)