首页
学习
活动
专区
圈层
工具
发布

当selenium爬虫遇到弹窗——iframe定位

(大致可以理解为页中页,及一个页面里嵌套了一个页面,而selenium的操作网页的原理是依靠窗口句柄,当前句柄在外面窗口,定位元素在内部窗口,所以无法定位到元素。...关于selenium的句柄切换详见下一篇文章,还没写!后面整理下再写,跟本次所要讲的切换类似又有点儿差异,有兴趣的可以百度一下,有前辈们贡献过!...) 解决方案 #定位到iframe iframe=drive.find_element_by_tag_name("iframe") #句柄切换进iframe drive.switch_to_frame...driver.switch_to.frame() 同理,如果drive.switch_to_default_content()失效 请改用新操作:drive.switch_to.default_content() 【本文环境配置:selenium...版本:3.141.0;chrome版本:76.0.3809,两种写法都可以】 总结 #定位iframe #也可以用其他属下定位同selenium常用定位方法,即iframe本身也是一个元素 iframe

1.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Selenium自动化测试-8.iframe处理

    ——————·今天距2020年75天·—————— 这是ITester软件测试小栈第61次推文 大家好 我是vivi小胖虎 听说很多城市最近的气温急转直下 在生活和行业寒冬的双重夹击中 身心灵与肉都饱受折磨...在上一篇:Selenium自动化测试-获取元素属性信息,介绍了如何获取元素的内容、属性、状态信息。...2.如果是动态id或者没有id和name属性,可以xpath或css定位解决。 检查发现126邮箱id="x-URS-iframexxxxxx" 是动态id, 所以,我们不能直接通过id定位。...下一篇将介绍定位一组元素,敬请期待~ 最后是今天的分享:Python接口测试框架实战与自动化进阶视频及资料 ?...ITester软件测试小栈今日分享 分享内容 Python接口测试框架实战与自动化进阶视频及资料 领取方式 微信公众号后台回复:20191013 有图有真相 ?

    2.1K20

    《selenium2 python 自动化测试实战》(8)——定位iframe

    我们来看一段最早的代码: # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firefox...body").send_keys(u"童林") driver.switch_to.default_content() # 页面下拉 js = "var q=document.documentElement.scrollTop...//*[@id='postarticle']").click() 这是我第一篇讲selenium时发给大家看的代码,现在我就就拿这段代码举例子: 1、如何辨别是不是iframe ?...上图我们看到了iframe,然后把鼠标放到iframe上,右键选择copy xpath: ? 这样我们就定位到了iframe的位置。...//*[@id='editorContainer']/iframe")) 现在我们进入了iframe,接下来正常进行定位、输入内容就可以了(看代码) 3、怎么跳出iframe 进入了iframe

    1K100

    【Python爬虫实战】全面掌握 Selenium 的 IFrame 切换、动作链操作与页面滚动技巧

    一、切换IFrame 在使用Selenium进行网页自动化测试时,iframe是经常会遇到的情况。iframe(内联框架)允许在一个网页中嵌入另一个HTML文档。...因此,当元素位于iframe中时,需要先切换到该iframe,否则Selenium会找不到该元素。...() (四)注意事项 切换iframe后,Selenium的查找范围将限制在该iframe中。...无论是 iframe 内部操作,还是复杂的 鼠标和键盘交互,亦或是处理 动态加载的页面滚动,这些技能都是 Selenium 用户必须掌握的。...通过实践这些技巧,你将能够更高效地完成自动化测试和网页数据抓取任务,为你的 Selenium 项目增添更多灵活性与稳定性。

    1.5K11

    Selenium实战:深度解析Python中嵌套Frame与iFrame的定位与切换技巧,解决Selenium定位不到的问题

    Python的Selenium库提供了强大的工具来应对这些挑战,本文将详细介绍如何使用Selenium在Python中处理嵌套Frame和iFrame,包括通过id、name、索引和WebElement...frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe对selenium定位而言是一样的,selenium...二、切换到Frame或iFrame 在Selenium中,我们需要先切换到目标Frame或iFrame,然后才能定位和操作其中的元素。Selenium提供了几种方法来切换上下文: 1....为了定位和操作最内层的iFrame中的元素,我们需要逐层切换。 当遇到嵌套的frame或iframe时,你需要逐层切换。...尽量避免在多层嵌套的Frame/iFrame之间频繁切换,因为这可能会使代码难以理解和维护。

    1.2K10

    利用iframe和location.hash实现跨域

    假设域名a.com下的文件cs1.html要和cnblogs.com域名下的cs2.html传递信息,cs1.html首先创建自动创建一个隐藏的iframe,iframe的src指向cnblogs.com...代码如下: 先是a.com下的文件cs1.html文件: function startRequest(){ var ifr = document.createElement('iframe...var ifrproxy = document.createElement('iframe'); ifrproxy.style.display = 'none';...(ifrproxy); } } a.com下的域名cs3.html //因为parent.parent和自身属于同一个域,所以可以改变其location.hash的值 parent.parent.location.hash...= self.location.hash.substring(1); 当然这样做也存在很多缺点,诸如数据直接暴露在了url中,数据容量和类型都有限等…… 原帖地址:JavaScript跨域总结与解决办法

    1.1K20

    Selenium必须掌握的元素定位方法

    Web端的UI自动化测试,目前使用比较多的就是Python+Selenium。当前一些UI自动化测试工具也是基于Selenium做开发的。...再次声明:本站点已经和百度、必应、谷歌等各大搜索引擎达成长期的战略合作协议,你有任何疑问都可以通过以上公司提供的免费服务得到解答。...测试环境 selenium:3.12.0 python:Python 3.6.5 windows:windows10 x86_64 IDE:Visual Studio Code Session info...但是有的时候iframe/frame没有可用的id和name属性值,那么这时候我们可以根据以下方式进行元素定位: #www.testclass.cn #Altumn #2018-11-5 from selenium...\Python36\python.exe' 'c:\Users\WangXiao\.vscode\extensions\ms-python.python-2018.7.1\pythonFiles\PythonTools

    5.1K20

    Selenium4+Python3系列(七) - Iframe、Select控件、交互式弹出框、执行JS、Cookie操作

    driver.switch_to.frame('iframe') driver.switch_to.frame('iframeName') 4、通过iframe元素进入iframe 通过iframe...元素进入指定iframe iframe=driver.find_element(By.ID,"iframe") driver.switch_to.frame(iframe) 完整案例代码如下: from...driver.switch_to.frame('iframe') driver.switch_to.frame('iframeName') # 通iframe元素进入iframe iframe=driver.find_element...下面举例几种常用滚动条的js代码示例如下: //拖动滚动条至底部 document.documentElement.scrollTop=10000 window.scrollTo(0,document.body.scrollHeight...addCookie()只添加name和value,对于博客园的登录是不成功。 本方法并不适合所有的网站,一般像博客园这种记住登录状态的才会适合。

    9K10

    还有 Selenium 抓不到的内容?

    有一些同学在写爬虫的时候,过于依赖 Selenium,觉得只要使用模拟浏览器,在不被网站屏蔽的情况下,就可以爬到任何内容。 今天我们不讨论字体反爬虫和 CSS 反爬虫这两种情况。...然后我们使用 Selenium 来试一试: ? Selenium果然无法获取 红字到内容。我们再打印一下网页的源代码: ?...但不同的是,iframe被嵌入的地址需要额外再搭建一个 HTTP服务,而 shadow DOM 可以只嵌入一段 HTML 代码,所以它比 iframe 更节省资源。...' 而这个被嵌入的影子标签,就像 iframe 一样,是无法直接使用 Selenium 提取的。...在 Python 里面拿到这个属性以后,使用.find_element_by_class_name()方法获取里面的内容。

    1.9K20

    一日一技:Selenium 抓不到的内容

    今天我们不讨论字体反爬虫和 CSS 反爬虫这两种情况。我们来看一段非常简单的网页。这个网页只有一个HTML 文件,不加载特殊字体,不加载 CSS 文件。 这个网页的奇怪之处在哪里呢?...但不同的是,iframe被嵌入的地址需要额外再搭建一个 HTTP服务,而 shadow DOM 可以只嵌入一段 HTML 代码,所以它比 iframe 更节省资源。...' 而这个被嵌入的影子标签,就像 iframe 一样,是无法直接使用 Selenium 提取的。...我们来看一段可以正常工作的代码: shadow = driver.execute_script('return document.querySelector(".content").shadowRoot...在 Python 里面拿到这个属性以后,使用.find_element_by_class_name()方法获取里面的内容。

    3.1K61
    领券