那如何去判断页面中是否存在frame呢?把鼠标放在跟节点的body标签上,检查他的高亮范围是否全屏,如果不是全屏,说明存在frame。
当我们确定元素是属于一个子Frame中的时候,就好办了,先切换到子frame,再去定位元素。
方法:可以通过frame的name属性进行切换。
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")