首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

目录 问题描述 原因分析 解决方案 总结 问题描述 如上图所示,为某数据网站,自动登录时,点击登录button会出现弹窗让你输入账号密码,此时定位输入框send_keys发送参数,报错信息如下:找不到元素...(大致可以理解为页中页,及一个页面里嵌套了一个页面,而selenium的操作网页的原理是依靠窗口句柄,当前句柄在外面窗口,定位元素在内部窗口,所以无法定位到元素。...关于selenium的句柄切换详见下一篇文章,还没写!后面整理下再写,跟本次所要讲的切换类似又有点儿差异,有兴趣的可以百度一下,有前辈们贡献过!...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

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

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

我们来看一段最早的代码: # coding: utf-8 from selenium import webdriver from time import sleep driver = webdriver.Firefox...//*[@id='postarticle']").click() 这是我第一篇讲selenium时发给大家看的代码,现在我就就拿这段代码举例子: 1、如何辨别是不是iframe ?...上图我们看到了iframe,然后把鼠标放到iframe上,右键选择copy xpath: ? 这样我们就定位到了iframe的位置。...//*[@id='editorContainer']/iframe")) 现在我们进入了iframe,接下来正常进行定位、输入内容就可以了(看代码) 3、怎么跳出iframe 进入了iframe...好多登录框、文章输入框都是iframe写的,现在对你来说应该已经不难了,大家快试试吧~~ 遇到问题可以留言哦~

932100

adminLte解决iframe高度问题

adminLte默认是全局刷新,也就是不存在frame页面,经过修改,可以很容易实现右边内容框用frame实现页面刷新,这样就不需要整个页面全局刷新,点击相应菜单时,只会刷新frame窗口,但是有一个问题就是...frame默认高度只有一丁点,百度之后用了自适应也会有各种问题,比如高度只能拉伸不会缩短,在解决的道路上真的是没有一个完美的解决方案,经过自己研究,发现一个非常简单的方法,那就是用js获取window的...innerHeight,代码实现window.innerHeight,然后出去顶部的状态栏,以及空白部分,经过测试,窗口高度减去90是最合适的,也可以根据你自己的情况加减,最后调至一个最完美高度,发现任何分辨率都不会有问题...-- Main content --> <iframe id="menuFrame" name...scrolling="auto" frameborder="no" height="100%" width="100%"> </iframe

86630

深入剖析iframe跨域问题

本文仅仅讲明了iframe的跨域问题,想了解更多关于iframe标签的基本知识,直接发送 “iframe标签” 到 “HTML5学堂” 的微信。...跨域问题是浏览器同源策略限制,当前域名的JavaScript只能读取同域下的页面对象,这也是JavaScript出于安全方面的考虑 “话说,利利啊,能不能解释明白点?...基本原理 需求:希望在http://A.h5course.com/a.html访问http://B.h5course.com/data.php文件中的数据。...跨域的代码实现 重申需求:希望在http://A.h5course.com/a.html访问http://B.h5course.com/data.php文件中的数据。...如果还想了解AJAX的跨域相关问题,直接发送 “AJAX跨域” 到 “HTML5学堂” 的微信。 HTML5小编-利利&堡堡 耗时11.0h

13.7K41

iframe跨域应用 - 使用iframe提交表单数据

之前我们提到了iframe跨域,今天我们在原有的基础之上进行“实例”的讲解。通过iframe跨域实现表单数据的提交。...如果想了解iframe跨域,可以发送“iframe跨域”到“HTML5学堂”公众号。 为何提交数据还要跨域?...在使用iframe跨域之前,可能你的脑海中就出现了这样一个问题:为何提交表单数据还需要跨域呢?...虽然,工程师们会进行各种加密处理,也会考虑到预防密码破解的问题(如:使用MD5加密数据之后再次使用MD5加密,从而让结果变得更为复杂,提升密码的破解难度)。...但是作为用户的我们,也尽可能的避免掉一些问题吧~ iframe提交表单数据 说完了前面的需要了解的东西,我们进入iframe的实例操作吧~!

5.2K50

Python网络数据抓取(7):Selenium 模拟

Selenium 提供了应用程序编程接口(API),以便与你的浏览器驱动程序进行交互。 实战 现在,我们通过一个简单的网页数据抓取实例来深入了解这个框架。...from selenium import webdriver from selenium.webdriver.chrome.options import Options 然后我们将设置selenium...query=python%20books" 我们还声明了我们的目标 URL。现在,我们只需要使用它的 .get() 方法来打开驱动程序。...当这些钩子全部加载完成后,我们可以通过在浏览器中完全加载页面后提取页面源代码,一次性完成数据抓取。 有些网站为了完整加载需要进行大量的 AJAX 请求。...在进行数据抓取时非常方便。 使用 Selenium 的不足: Selenium 不支持图像比较功能。 使用起来比较耗时。 对于初学者来说,搭建测试环境可能稍显复杂。

9600

Selenium2+python自动化24-js处理富文本

前言 上一篇Selenium2+python自动化23-富文本(自动发帖)解决了富文本上iframe问题,其实没什么特别之处,主要是iframe的切换,本篇讲解通过js的方法处理富文本上iframe...的问题 一、加载配置 1.打开博客园写随笔,首先需要登录,这里为了避免透露个人账户信息,我直接加载配置文件,免登录了。...不懂如何加载配置文件的,看这篇Selenium2+python自动化18-加载Firefox配置 ?...iframe,所以需要先切换 (关于iframe不懂的可以看前面这篇:Selenium2+python自动化14-iframe) ?...edittile) body = "这里是通过js发的正文内容" # js处理iframe问题(js代码太长了,我分成两行了) js = 'document.getElementById("Editor_Edit_EditorBody_ifr

1K50

【HTML】iframe跨域访问问题

概述 本地同一浏览器访问本地HTML文件和访问服务器端HTML文件,本地Iframe没有自适应高度,而服务器端的Ifrane自适应了高度。...1.问题重现: Chrome 版本 41.0.2272.101 (64-bit) OS:Win8.1 Chrome访问服务器端HTML文件呈现的结果 ?...本地访问的HTML文件Iframe没有根据Iframe里面的页面类容自适应高度 2.Iframe自适应高度代码 在index.html文件中间中添加Iframe页面,页面加载时,加载src指定的文件路径...<iframe id="indexFrame" name="index" width="800" onload='iFrameHeight("indexFrame")' src="Web/Index/...在这里,我猜测是访问本地文件是file协议(file:///),HTML代码和JS代码存在跨域问题。小弟对file协议不熟悉,请大家不吝赐教。

4.5K80
领券