共计 1328 个字符,预计需要花费 4 分钟才能阅读完成。
这篇文章主要为大家展示了“selenium 如何定位多个嵌套 iframe”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让丸趣 TV 小编带领大家一起研究并学习一下“selenium 如何定位多个嵌套 iframe”这篇文章吧。
一. driver.switch_to.frame(id):可以通过 id 切换到 iframe
之前学习了 selenium 切换到 iframe 的方法,代码如下
from selenium import webdriver
driver = webdriver.Chrome()
driver.switch_to.frame(0) #1. 用 frame 的 index 来定位,第一个是 0# driver.switch_to.frame(frame1) #2. 用 id 来定位 # driver.switch_to.frame(myframe) #3. 用 name 来定位 # driver.switch_to.frame(driver.find_element_by_tag_name( iframe)) # 4. 用 WebElement 对象来定位
源码中并没有说可以通过 id 定位,但事实上是可以的
一定要注意,对于并列的 iframe,我们可以用下标表示,但是嵌套的,除了第一个可以用下标 0 表示外,其他都不行
# 并列的 iframeiframe --------------------------- 下标 0 |
|
|iframe---------------------------- 下标 1 |
|
|iframe---------------------------- 下标 2
# 嵌套的 iframeiframe -----------------------------------id= f1 iframe ------------------------------------id= f2 iframe -------------------------------------id= f3
2. 通过 id 定位
# 先找到 iframe1(id= f1)driver.switch_to.frame(f1)# 再找到其下面的 iframe2(id= f2)driver.switch_to.frame(f2)
完美解决,还有一个问题,我们要向从切到上级 iframe,应该如何实现
3. 从子 iframe 切到父 iframe
selenium 提供了一个类似 后退 的方法,如下
driver.switch_to.parent_frame() # 如果当前已是主文档,则无效果
三. 总结
对于 iframe 处理,目前主要有三种方法
1 driver.switch_to.frame(reference)2 driver.switch_to.parent_frame()3 driver.switch_to.default_content()
其中第一种 iframe 的切换的参数有 4 个: idex, id, name, webelement
以上是“selenium 如何定位多个嵌套 iframe”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!
正文完