当我们在定位元素的时候,明明这个元素的属性是唯一的,固定的,但是Selenium就是定位不到这个元素,这个时候,我们就要去考虑一下这个页面是不是存在子frame?
那如何去判断页面中是否存在frame呢?把鼠标放在跟节点的body标签上,检查他的高亮范围是否全屏,如果不是全屏,说明存在frame。
当我们确定元素是属于一个子Frame中的时候,就好办了,先切换到子frame,再去定位元素。
driver.switch_to.frame("frame标签的name属性")
举个例子,如下图,当我想定位图中搜索框的时候,直接定位是定位不到的,往上翻页面,可以看到这个元素是存在于iframe下的,这个时候就需要先切换到对应的frame下才能定位到元素。
话不多说,代码如下图所示:
1 # 把Selenium切到子页面 2 driver.switch_to.frame("mainFrame") 3 driver.find_element(By.NAME, "name").send_keys("iphone xs max")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。