草庐IT

selenium-webdriver-Chrome

全部标签

【python爬虫】10.指挥浏览器自动工作(selenium)

文章目录前言selenium是什么怎么用设置浏览器引擎获取数据解析与提取数据自动操作浏览器实操运用确认目标分析过程代码实现本关总结前言上一关,我们认识了cookies和session。分别学习了它们的用法,以及区别。还做了一个项目:带着小饼干登录,然后在博客中发表评论。除了上一关所讲的登录问题,在爬虫过程中,我们还可能会遇到各种各样棘手的问题——有的网站登录很复杂,验证码难以破解,比如大名鼎鼎的12306。有的网站页面交互复杂,所使用的技术难以被爬取,比如,腾讯文档。还有的网站,对URL的加密逻辑很复杂,比如,第4关爬过的QQ音乐歌曲评论,URL的参数变量找起来挺费劲的。以上这些情况,想要攻破

基于Selenium技术方案的爬取界面内容实践

1.定位页面(多窗口切换)WebDriver提供了处理多个窗口的能力,这是通过使用“WebDriver.switchTo.window()”方法来切换到已知名称的窗口来实现的。如果名称未知,您可以使用“WebDriver.getWindowHandles()”获取已知窗口列表。您可以将句柄传递给switchTo.window()。获取当前窗口句柄driver.current_window_handle返回的所有窗口的句柄到当前会话driver.window_handles切换窗口,可以实现在不同的窗口之间切换。switch_to.window()示例代码:#模拟按下回车键进行搜索search_

linux 下安装chrome 和 go

 1.安装google-chrome1.1首先下载google-chrome.deb安装包之后安装gdebi包sudoaptinstallgdebi1.2 安装所要安装的软件sudogdebicode_1.81.1-1691620686_amd64.deb1.3解决Chrome无法启动问题root@ubuntu:~/Downloads#whereisgoogle-chromegoogle-chrome:/usr/bin/google-chrome/usr/share/man/man1/google-chrome.1.gzroot@ubuntu:~/Downloads#vim/usr/bin/g

Selenium环境+元素定位大法

selenium与webdriverSelenium是一个用于Web测试的工具,测试运行在浏览器中,就像真正的用户在手工操作一样。支持所有主流浏览器WebDriver就是对浏览器提供的原生API进行封装,使其成为一套更加面向对象的SeleniumWebDriverAPI。使用这套API可以操控浏览器的开启、关闭,打开网页,操作界面元素,控制Cookie,还可以操作浏览器截屏、安装插件、设置代理、配置证书等 环境搭建1、为Python安装selenium模块,pipinstallselenium2、下载对应浏览器驱动 Chromedriver 使用selenium访问百度并搜索反爬虫设置ui自动

Chrome浏览器控制台Unchecked runtime.lastError: The message port closed before a response was received.解决

大家好,今天和大家分享一报错的解决方法在使用vue开发时使用Chrome运行的时候出现了一个报错,当时什么都没有写就报错了,就找了一下这个问题,后来发现是因为迅雷拓展的问题,下面就一起来看看如何解决这个问题。问题描述:今天在做项目时使用Chrome打开项目,当打开控制台时报错,如下图:个人分析:开始以为是代码出问题了,看了半天发现并没有,经过查找后发现是迅雷插件扩展造成的,把它关闭之后就好了,大家注意一下,也有可能不是迅雷,主要原因可能还是插件写法问题,异步未结束就开始了新的导致的,加一段这个就行if(chrome.runtime.lastError){},所以其他插件也有可能代码不严谨、规范

Selenium 自动化测试如何优雅的解决图片验证码问题

Selenium自动化测试如何优雅的解决图片验证码问题说到自动化测试那一定避不开登陆注册页面,而大多数情况下这两个简单的页面都存在一个小困难就是验证码,以前我的解决办法都是在测试环境粗暴的写死一个万能验证码,或者给程序一个10秒钟的线程阻塞,手动输入验证码以跳过这个步骤。这样就可以不那么优雅的实现的登陆注册自动化测试啦。但是思来想去,既然是自动化测试,那就不应该有手动或者写死代码的魔改方式存在,而是全自动的测试。于是展开一番探索后的我找到了两种方法解决这个问题。一、cookie方式绕过验证首先手动登陆一下,然后抓包找到对应的cookie值,复制该值找到和登陆相关的key:value并使用sel

selenium---浏览器F12的正确用法

前言测试过程中经常会进行抓包来查看一些错误内容,判断是前端的问题还是后端的问题,常见的抓包工具有Fiddler,Charles,还有web端的F12。今天安静来介绍下如何通过F12进行抓包查看请求内容浏览器抓包打开百度按下键盘F12或者邮件选择检查,这里可以看到有一些选项:Elements,Console,Sources,Netork,performance,Memory,Application,Secutity,Lighthouse,那么这写选择都是干什么的呢?对于我们测试来说能给我们提供什么信息呢?安静一个个进行介绍ElementsElements:表示当前页面的HTML内容,一些挡圈页面

Python之selenium,使用webdriver模拟登录网站(含验证码)

一、前言前段时间做了一个小项目,其中有一段需要自动获取网站后台的数据,但是这个网站没有任何提供给开发者的API,所以只能靠自己去探索。起初想着用发送请求的方式去模拟登陆,获取cookies,从而再获取网站后台数据,但是因为自己太菜了一些原因,放弃了这个方法。后来想到使用webdriver调用浏览器来模拟登陆,发现操作起来简单很多,而且可以达到同样的效果,于是便有了这篇文章。二、准备工作需要下载和安装一些东西,可以去官方教程中进行了解。学习本篇文章的内容只需要安装好selenium库以及下载好浏览器对应版本的驱动即可。三、模拟登陆网站1.加载驱动和配置这里我使用的是默认配置,如果有特殊需求,可以

selenium frame切换

说明:本篇博客基于selenium4.1.0场景说明场景:页面存在frame、iframe嵌套结构。frame是html中的一种标签,可在一个页面中拼接多个网页问题:selenium不能直接定位和操作处于frame、iframe内的元素解决:使用selenium的frame切换功能,切换到frame内后再进行操作切换步骤#步骤1:根据frame定位,创建frame对象ele_frame=driver.find_element(By.XPATH,'/html/body/iframe')#步骤2:传入frame对象,切换到对应frame中#备注:#1.可直接传入frame的id、name信息#2.

selenium.common.exceptions.SessionNotCreatedException: Message: Expected browser binary location…

问题描述:selenium启动firefox浏览器驱动时报错“selenium.common.exceptions.SessionNotCreatedException:Message:Expectedbrowserbinarylocation…”问题截图:问题原因:可能原因,需逐一排查:1、系统未安装FireFox浏览器(已安装)2、驱动和浏览器版本不匹配(驱动和浏览器都是最新的)3、Firefox没有安装在你系统中的默认位置(装在d盘了)解决方案:原因1的解决方案:安装FireFox浏览器原因2的解决方案:安装和浏览器匹配的浏览器驱动原因3的解决方案一:在环境变量path中添加firfox