selenium如何定位多个嵌套iframe

75次阅读
没有评论

共计 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 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计1328字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)