Selenium-网页存在子frame如何定位元素

  当我们在定位元素的时候,明明这个元素的属性是唯一的,固定的,但是Selenium就是定位不到这个元素,这个时候,我们就要去考虑一下这个页面是不是存在子frame?

  那如何去判断页面中是否存在frame呢?把鼠标放在跟节点的body标签上,检查他的高亮范围是否全屏,如果不是全屏,说明存在frame。

  当我们确定元素是属于一个子Frame中的时候,就好办了,先切换到子frame,再去定位元素。

方法:可以通过frame的name属性进行切换。

driver.switch_to.frame("frame标签的name属性")

 

举个例子,如下图,当我想定位图中搜索框的时候,直接定位是定位不到的,往上翻页面,可以看到这个元素是存在于iframe下的,这个时候就需要先切换到对应的frame下才能定位到元素。

Selenium-网页存在子frame如何定位元素

 

 话不多说,代码如下图所示:

1 # 把Selenium切到子页面
2 driver.switch_to.frame("mainFrame")
3 driver.find_element(By.NAME, "name").send_keys("iphone xs max")

 

上一篇:UI自动化测试((弹出框)alert实战、(鼠标事件)ActionChains类实战、wait类实战)


下一篇:Java笔记