selenium中如何定位a标签中含有href="JavaScript:"的元素?xpath和css都试过了,没有用

今天在定位一个弹框按钮的时候,发现selenium关不了他,定位不到这个界面上的叉叉,按了f12,元素地址如下,像这种标签,该如何定位呢?
关闭

查看了相似问题,应该是存在iframe导致的问题,那么这个该如何解决呢?

img

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()