当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,今天在针对js动态网页爬虫时,使用代理并使用Selenium,打开网页时,浏览器总是一闪而退,代码如下:
from selenium import webdriver
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
def chrome_proxy():
driver_path = Service(r'C:\Python39\chromedriver.exe')
chromeoptions = webdriver.ChromeOptions()
# 设置代理
chromeoptions.add_argument("--proxy-server=http://223.242.228.140:42662")
browser = webdriver.Chrome(service=driver_path,options=chromeoptions)
# response = browser.get("http://myip.ipip.net")
browser.get("https://www.baidu.com/")
print("返回页面", browser.page_source)
if __name__ == '__main__':
chrome_proxy()
然后以为是下载的浏览器驱动版本不同导致。所以我第一步先排查我的浏览器版本,
如图1:(版本为102.0.5005.63)
浏览器驱动版本我下载的是102.0.5005.61并放到了python的安装目录下(不能用103.0.5060.24会报错版本不匹配):
(下载地址:http://chromedriver.storage.googleapis.com/index.html)
但是版本已经相同了,浏览器还是一闪而退,并且也没有报错驱动版本的错误,但是无意中把driver_path = Service(r'C:\Python39\chromedriver.exe')定义在函数外面确成功了,没有出现闪退,此时恍然大悟,是由于浏览器不是全局变量导致。
from selenium import webdriver
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
driver_path = Service(r'C:\Python39\chromedriver.exe')
def chrome_proxy():
chromeoptions = webdriver.ChromeOptions()
# 设置代理
chromeoptions.add_argument("--proxy-server=http://223.242.228.140:42662")
browser = webdriver.Chrome(service=driver_path,options=chromeoptions)
# response = browser.get("http://myip.ipip.net")
browser.get("https://www.baidu.com/")
print("返回页面", browser.page_source)
因此也可以改写成global browser定义成全局变量:
from selenium import webdriver
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
def chrome_proxy():
# 需要设置browser为全局变量才可以,否则会闪退
global browser
driver_path = Service(r'C:\Python39\chromedriver.exe')
chromeoptions = webdriver.ChromeOptions()
# 设置代理
chromeoptions.add_argument("--proxy-server=http://223.242.228.140:42662")
browser = webdriver.Chrome(service=driver_path,options=chromeoptions)
# response = browser.get("http://myip.ipip.net")
browser.get("https://www.baidu.com/")
print("返回页面", browser.page_source)
if __name__ == '__main__':
chrome_proxy()
我用的代理是:https://h.shenlongip.com/index?from=seller&did=h4Dmox
当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?相关推荐
- 解决Selenium WebDriver 加载页面时出现浏览器闪退
webdrive驱动edge浏览器打开网页后,会出现自动退出了情况时,大概率都是浏览器驱动和浏览器版本不一致的问题!以edge为例,我们可以通过点击浏览器的设置,找到关于Microsoft Edge查 ...
- AMD的CPU运行Matlab软件进行神经网络运算时总是出现闪退问题及解决方法
问题描述: 用AMD的CPU运行matlab做神经网络训练时,总是闪退(其它计算都正常),提示错误如下: 所用CPU型号:AMD的3700X MATLAB 版本: 8.6.0.267246 (R20 ...
- ie不能加载flash html,IE浏览器无法显示Flash怎么解决
1,先把IE选项统统设为默认或者:单击IE主窗口中的菜单"工具→Internet选项",在打开的窗口中选择"高级"选项卡,在下面的列表中找到"多媒体→ ...
- python爬虫动态加载页面_Python+Selenium爬取动态加载页面(2)
注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...
- vue 加载页面时触发时间_解析Vue项目的四个方面优化
在本篇文章里我们给大家整理了一篇关于优化VUE项目的四个总要点,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 运行时优化 1.使用v-if代替v ...
- vue 加载页面时触发时间_详解Vue.js在页面加载时执行某个方法
详解Vue.js在页面加载时执行某个方法 jQuery中可以这样写 vue中,如果要达到相同效果,可以使用vue的生命周期函数,如create或者mounted 附上vue.js的生命周期函数执行流程 ...
- 上传文件到服务器经常连接重置,尝试将文件上传到tmp_name时,“正在加载页面时重置了”服务器的连接重置“...
我正在制作网站以将mp3文件存储在数据库中.当我访问该网站时,它说我已成功连接到数据库,并成功选择了数据库.但是当我选择一个文件并按上传按钮时,它会尝试连接很长时间,然后我的网络浏览器显示" ...
- jQuery eq()方法 =》加载页面时单选框默认选中
*加载页面时单选框默认选中(此方法适用于循环输出的单选钮的默认选中问题) <body> <input type="radio" name="jing&q ...
- 首次加载页面时,Android Chrome上永远不会触发Touchstart事件
On Android Chrome, when you create a new tab and access to a page with the content below, your touch ...
最新文章
- linux多线程求和_谈一谈C++中的多线程(上)
- 磊哥评测之数据库:腾讯云MongoDB vs自建
- 6选择内核启动项_Linux内核都没搞懂,Alot和你还有什么关系?
- 360换机 v2.12.5.9 官方安卓版
- Win10 OPNET14.5+VS2010 安装教程
- php获取qq头像地址,使用PHP语言通过邮箱获取全球公认的Gravatar头像地址
- 导论计算机论文题目,计算机类论文题目
- 如何使用JGIT在远程仓库获取提交详情记录
- POJ 1564 Sum It Up
- 13个搭讪绝招助你告别单身
- 打开matlab只出现蓝色的界面,win10 windows设置无法打开总卡在纯蓝色界面如何解决...
- 对称加密和非对称加密,数字签名和证书
- LDAP简述及统一认证说明
- SSM实训:11、页面插件集成
- Property maxActive is not used in DBCP2, use maxTotal instead. maxTotal default value is 8. You have
- html中使用video标签插入视频
- 微软采用 Visual Studio 2005 Team System 进行集成软件开发 ---技术案例研究
- 3.	以太网帧的结构
- 华为:货币汇率机试题
- 50年前的程序员女神,用代码把人类送上月球
热门文章
- OpenJudge-021:鸣人和佐助
- dilink虚拟服务器怎么设置,最简单的dlink路由器设置教程
- Spring、Springboot 应用启动为何这么慢,能否加速?
- 《嫌疑犯x的献身》看完了。。。
- 【机器视觉系统】基于3DOF机械臂的五子棋机器人(1)
- LeetCode#17 Python解
- IO回忆录之怎样过目不忘(BIO/NIO/AIO/Netty)2017版
- 数据库管理 │ 浅谈从集中式到分布式数据库的转型要点
- 英雄联盟(LOL)外挂原理(仅供学术交流)
- 在linux安装编译vscode,Linux中安装 Visual Studio Code 详解