selenium+python处理iframe切换

这篇具有很好参考价值的文章主要介绍了selenium+python处理iframe切换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

selenium+python处理iframe切换有3种方法:
1、如果iframe有id或name,则可根据iframe的id或name切换。
2、把iframe当作页面元素,通过元素定位表达式进行切换。
3、将iframe存储到list中,然后根据ifrane的索引定位 (适合页面有多个iframe,且前两种方法无法使用)。
如果页面有多层iframe嵌套,则需要一层一层往内切换,切出iframe则只需要一次操作。selenium+python具体代码示例如下:文章来源地址https://www.toymoban.com/news/detail-508151.html

import time
from selenium import webdriver



# 实例化浏览器,访问目标网页,窗口最大化
driver = webdriver.Chrome()
driver.get("http://www.eteams.cn/")
driver.maximize_window()
driver.implicitly_wait(5)

# 切换到iframe中,针对多层嵌套的iframe,需要一层一层往里切换,切出去只需一次
# 方法:1:根据iframe的id或name切换
driver.switch_to.frame("needit")
driver.switch_to.frame("ueditor_0")
driver.switch_to.default_content()

# 方法2:把iframe当作页面元素进行切换
iframe1 = driver.find_element_by_css_selector("iframe.needit")
driver.switch_to.frame(iframe1)
iframe2 = driver.find_element_by_css_selector("iframe[frameborder='0']")
driver.switch_to.frame(iframe2)
driver.switch_to.default_content()

# 方法3:将iframe存储到list中,然后根据ifrane的索引定位
iframeElements = driver.find_elements_by_tag_name("iframe")
print("iframe List的长度是:"+str(len(iframeElements)))
driver.switch_to.frame(0)
driver.switch_to.frame(1)
driver.switch_to.default_content()

driver.quit()

到了这里,关于selenium+python处理iframe切换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium iframe框架处理

    对于子嵌套的页面,我们直接标签定位会报错,如下面代码 所以我们要切换作用域,根据iframe标签的id转入iframe框架,再进行后续操作。 操作完成后返回主框架 源码语法请看下图  我们来模拟登录进行简单案例加以巩固,比如qq空间登录界面。 现在一般来说,进入qq空间官网

    2024年02月04日
    浏览(35)
  • 软件测试|如何使用selenium处理iframe富文本输入框

    简介 在网页开发中,富文本框是常见的元素,用于输入富文本内容,如富文本编辑器或邮件编辑器。如果我们要使用Python和Selenium进行自动化测试或操作这种富文本框,可能会遇到一些挑战。本文将详细介绍如何使用Python和Selenium来向iframe富文本框输入内容,并提供示例代码

    2024年01月20日
    浏览(39)
  • vue项目关于iframe嵌套的页面,在切换tab标签时会被重新刷新的问题处理方案

    这两天工作中遇到一个这样的需求,切换tab标签时,要求对应的tab页面不刷新,但是项目中加入了一部分含有iframe的页面,在切换路由的过程中,如果使用keep-alive是达不到缓存ifram嵌套的页面效果的。 vue中的keep-alive 1.原理:vue 的缓存机制并 不是直接存储 DOM 结构 ,而是将

    2024年02月04日
    浏览(80)
  • Python学习笔记——selenium定位iframe和元素(快速定位)

    在使用selenium过程,发现定位iframe、元素比较困难,所以制作一个辅助小工具。  当前界面没有,调整driver位置 1.Xpath定位  2,.其他定位方式 获取元素、操作失败重复操作,直至操作成功。

    2024年02月13日
    浏览(51)
  • python自动化测试selenium定位frame及iframe示例

    这篇文章主要为大家介绍了python自动化测试selenium定位frame及iframe示例的示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助 frame标签有frameset、frame、iframe三种,frameset和其它普通标签没有区别,不会影响正常定位,而frame与iframe对selenium定位而言是一样的。 Selenium有

    2024年01月20日
    浏览(45)
  • Python_selenium: 元素定位不到的罪魁祸首之一:iframe

    背景:组内同事最近在写脚本,使用复制的xpath始终定位不到元素,报错内容:selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {\\\"method\\\":\\\"xpath\\\",\\\"selector\\\":\\\"//table[text()=\\\'contentTable\\\']/tbody/tr/td[16]/a[2]/i\\\"} 解题思路: 1. 由于提供的html截图信息,发现存在多层body消息体拼

    2024年02月04日
    浏览(52)
  • Python:用Selenium操纵网页,找不到iframe,可以用这个简单粗暴的方法,循环他

    很多时候用Selenium包操纵浏览器的时候,会遇到元素因为包含在某个莫名其妙的iframe里面,而无法定位的情况。 可以采用以下方法,通过循环遍历所有的iframe,定位到iframe后,再选取和操纵相应的元素。 直接上代码:

    2024年02月03日
    浏览(42)
  • Selenium4+Python3 - Iframe、Select控件、交互式弹出框、执行JS、Cookie操作

    iframe识别: 语法: driver.switch_to.frame(‘方式’) 1、常见处理方法三种 index:下标 name:id或name属性的值 webelement:元素 2、通过下标进入 进入第一个iframe: 3、通过id或name属性的值进入 通过id或name属性的值进入指定的iframe: 4、通过iframe元素进入iframe 通过iframe元素进入指定i

    2024年02月04日
    浏览(61)
  • Python爬虫(7)selenium3种弹窗定位后点击操作,解决点击登录被隐藏iframe无法点击的登陆问题

    之前的文章有关于更多操作方式详细解答,本篇基于前面的知识点进行操作,如果不了解可以先看之前的文章 Python爬虫(1)一次性搞定Selenium(新版)8种find_element元素定位方式 Python爬虫(2)-Selenium控制浏览器 Python爬虫(3)-Selenium结合pywin32模拟键盘操作 Python爬虫(4)-Seleni

    2024年02月04日
    浏览(59)
  • Selenium教程__使用switch_to.frame处理网页框架切换(13)

    与在新窗口打开一个网页后需要切换窗口才能定位元素一样,在iframe标签中的元素也不能直接定位,需要切换到对应的iframe框架中才能进行元素定位。 完成网页框架切换操作需要用selenium中的两个方法 driver.switch_to.frame(frame_reference):切换到网页框架内,frame_reference为框架元素

    2024年02月06日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包