当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?

这篇具有很好参考价值的文章主要介绍了当使用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)

当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?

浏览器驱动版本我下载的是102.0.5005.61并放到了python的安装目录下(不能用103.0.5060.24会报错版本不匹配):

(下载地址:http://chromedriver.storage.googleapis.com/index.html)

当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?

 当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?

但是版本已经相同了,浏览器还是一闪而退,并且也没有报错驱动版本的错误,但是无意中把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文章来源地址https://www.toymoban.com/news/detail-407714.html

到了这里,关于当使用Selenium WebDriver 加载页面时出现浏览器闪退时,如何解决?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium+webdriver之安装浏览器驱动

    1.查看谷歌浏览器版本,因为浏览器驱动版本需要与浏览器版本一致         查看谷歌版本路径:帮助》关于Google Chrome         我的浏览器版本是          2.下载浏览器驱动         下载驱动链接: http://npm.taobao.org/mirrors/chromedriver/         2.1点击上方链接

    2024年02月06日
    浏览(47)
  • WebDriver+Selenium实现浏览器自动化

    Selenium是一款可以自动化操作浏览器的开源项目,最初的目的是浏览器功能的自动化测试,但是随着项目的发展,人们根据它的特性也用来做一些更多的有意思的功能而不仅仅是UI的自动化测试工具。就像Selenium官方网站上描述的那样,Selenium可以自动化操纵浏览器。完了!你

    2024年02月03日
    浏览(51)
  • selenium-webdriver调用谷歌浏览器和火狐浏览器

    nodejs selenium-webdriver 操作文档 https://www.npmjs.com/package/selenium-webdriver 1.调用谷歌浏览器 2.调用火狐浏览器 下面设置了一些选项 ​ 需要设置环境变量,在CMD中firefox可以打开浏览器 否则报错 Expected browser binary location, but unable to find binary in default location, no \\\'moz:firefoxOpti  

    2024年02月02日
    浏览(80)
  • 浏览器自动化脚本 Selenium WebDriver 快速入门

    2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)_软件测试刷题小程序-CSDN博客 文章浏览阅读2.7k次,点赞85次,收藏12次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、

    2024年03月09日
    浏览(74)
  • Python爬虫入门:使用selenium库,webdriver库模拟浏览器爬虫,模拟用户爬虫,爬取网站内文章数据,循环爬取网站全部数据。

    *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径。 目录 准备工具: 思路: 具体操作: 调用需要的库: 启动浏览器驱动: 代码主体:  完整代码(解析注释): Python环境; 安装selenium库; Python编辑器; 待爬取的网站; 安装好的浏览器; 与浏览器版本相对应的

    2023年04月24日
    浏览(58)
  • 关于selenium库浏览器webdriver不能被找到的问题

    报错提示: selenium.common.exceptions.NoSuchDriverException: Message: Unable to obtain driver for firefox using Selenium Manager.; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location 意思就是找不到驱动火狐浏览器的webdriver,网络上回答的方法一般是:

    2024年02月08日
    浏览(57)
  • PyCharm-selenium-webdriver实现自动打开浏览器

    打开pycharm,点击File-setting-点击加号 输入selenium,点击install package https://registry.npmmirror.com/binary.html?path=chromedriver/ 根据chrome的版本选择下载对应的插件版本 没有最新chrome版本对应的webdriver版本,就选择接近的版本 然后把下载的webdriver.exe复制到python安装目录和谷歌安装目录 并

    2024年02月12日
    浏览(55)
  • Selenium Edge的无头浏览器模式以及反WebDriver检测

            由于本人只使用Edge浏览器,所以在得知Selenium对PantomJS的支持取消后,在网上找了各种关于Edge浏览器的资料。配置Selenium Edge有多种方法,但这里只介绍一种方法。 MSEdgeDriver下载地址  此处需要注意将浏览器更新到最新版本,以及选择正确的下载通道 解压下载的压缩

    2023年04月09日
    浏览(60)
  • 【软件测试/自动化测试】WebDriver+Selenium实现浏览器自动化

    前言 使用场景 原理 环境准备  开发 First Script WebDriver API 浏览器 元素 总结 Selenium是一款可以自动化操作浏览器的开源项目,最初的目的是浏览器功能的自动化测试,但是随着项目的发展,人们根据它的特性也用来做一些更多的有意思的功能而不仅仅是UI的自动化测试工具。

    2024年02月08日
    浏览(82)
  • 02_Selenium WebDriver各浏览器驱动下载路径、版本对照、相关配置

    http://npm.taobao.org/mirrors/chromedriver/ http://chromedriver.storage.googleapis.com/index.html (下面可下载截止到目前为止最新的驱动) https://www.nuget.org/packages/Selenium.WebDriver.ChromeDriver/115.0.5790.10200 https://googlechromelabs.github.io/chrome-for-testing/#stable 如果谷歌浏览器是70之后的版本,直接根据浏览器

    2024年02月09日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包