当使用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 ...
最新文章
- 数据查询分页显示的优化方法
- Parsing XML in J2ME
- C/C++查找一定范围内的素数(筛法)
- java嵌入式开发neo4j_java-嵌入式Neo4j实际如何工作?
- python中break和continue的区别_python中break和continue的区别
- 力扣--122. 买卖股票的最佳时机 II
- S32K MCAL02-FlexCAN 时钟模块【理论部分】
- 拼多多商品详情百亿补贴数据采集接口代码展示
- 反转字符串中的元音字母Python解法
- Excel 多级下拉菜单设置,数据有效性
- unity3d学习笔记-报错
- 页面布局(1):淘宝首页
- 喜大普奔!GitHub App 终于支持中文了,可尝鲜下载体验!
- python实现crc32爆破,得到加密文件内容
- 分数换算小数补0法_一年级数学0基础的全过来,最全知识点及基本方法,包你数学不补课都90+...
- 怎么用计算机玩绝地求生,8g内存玩绝地求生卡顿怎么办?绝地求生大逃杀内存设置优化图文教程...
- 加ing形式的单词有哪些_给下面的单词分类 直接加ing: 去e加ing: 特殊变位:,去e加ing的英语单词...
- 基于智能融合配变终端的数字化台区技术应用(转载)
- 小议PPT制作:高管如何做演讲PPT
- orange Pi3解码能力测试