今天在定位一个弹框按钮的时候,发现selenium关不了他,定位不到这个界面上的叉叉,按了f12,元素地址如下,像这种标签,该如何定位呢?
关闭
查看了相似问题,应该是存在iframe导致的问题,那么这个该如何解决呢?
a标签中含有href="JavaScript:",表示是一个空链接,一般通过单击事件触发js方法。跟这个没有关系的。
只有切换到iframe里面,selenium才能定位到 iframe里面的元素。使用switch_to.frame(reference)定位frame,可以传入id、name等作为参数,如果没有这些参数,可以通过xpath匹配WebElement对象进行定位,然后再定位frame中元素。切换回原主页面用:switch_to.default_content()
跳到那个弹框的iframe里也点不到吗
要先切换到 ifram
self.__driver.switch_to_frame("ptlogin_iframe") # 切换iframe
然后 在
self.__driver.find_element_by_xpath('//*[@id="switcher_plogin"]').click()
这样才行,不然找不到id的
先找到iframe的name或id,用driver.swith_to.frame("**"),iframe的name或id,
再xpath("//*[@id=' ']").click()