selenium自动化DevTools连接断开问题

这篇具有很好参考价值的文章主要介绍了selenium自动化DevTools连接断开问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用Selenium的无头模式下,出现了DevTools连接断开的问题:

报错如下所示:

self = <selenium.webdriver.remote.errorhandler.ErrorHandler object at 0x000002455732EA70>
response = {'status': 500, 'value': '{"value":{"error":"disconnected","message":"disconnected: not connected to DevTools\\n  (fai...unk [0x75EA6BA9+25]\\n\\tRtlGetFullPathName_UEx [0x77588F9F+1215]\\n\\tRtlGetFullPathName_UEx [0x77588F6D+1165]\\n"}}'}
 selenium.common.exceptions.WebDriverException: Message: disconnected: not connected to DevTools

以上问题属于DevTools连接超时自动中断了,可能出现的问题:

1. 版本不匹配:Selenium与浏览器或驱动程序的版本可能不兼容。请确保使用的Selenium版本与浏览器和驱动程序的版本相匹配。

2. 驱动程序问题:检查所使用的浏览器驱动程序是否正确安装和配置。确保驱动程序与所使用的浏览器版本兼容,并且在运行脚本之前已正确启动。

3. 网络问题:确保网络连接正常,没有任何防火墙或代理设置干扰与浏览器的通信。

4. 其他问题:暂未找到可能出现的其他原因,可以通过不同浏览器火狐、edge等看看是否重现。

我这边的出现的问题在调用webdriver自带的刷新方法时中断连接

def page_refresh_all(self):
        """
        整个页面刷新,全页面
        :return:
        """
        self.driver.refresh()
        time.sleep(2)

解决方案:

前置:当浏览器版本与驱动版本一致时,若不一致同步更新一致

1、增加连接超时时间:在创建浏览器实例时,增加连接超时时间。设置desired_capabilities增加连接超时时间: 设置的3秒可增加时间。

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
desired_capabilities = chrome_options.to_capabilities()
desired_capabilities['pageLoadStrategy'] = 'none'
desired_capabilities['timeouts'] = {'implicit': 3000, 'pageLoad': 3000, 'script': 3000}

driver = webdriver.Chrome(desired_capabilities=desired_capabilities)

2、禁用沙盒模式:启用无头模式时,谷歌浏览器会在沙盒模式下运行,这会导致DevTools连接断开。尝试禁用沙盒模式,看看是否能够解决问题。在创建浏览器实例时,可以通过设置chromeOptions来禁用沙盒模式:

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')

driver = webdriver.Chrome(chrome_options=chrome_options)

3、禁用插件:其他可能的冲突:其他正在运行的程序或插件可能会干扰Selenium与DevTools之间的通信,关闭其他可能干扰的程序或插件。

options.add_argument("--disable-extensions")

4、对代码中断部分添加异常处理。文章来源地址https://www.toymoban.com/news/detail-588575.html

def page_refresh_all(self):
    """
    整个页面刷新,全页面
    :return:
    """
    time.sleep(1)
    try:
        # 判断是否已经连接到DevTools,如果未连接则重新建立连接
        self.driver.execute('Browser.getVersion', {})
    except Exception as e:
        # 如果连接断开,则重新创建浏览器实例
        self.driver.quit()
        # 在重新创建浏览器实例之前,可以添加一些等待时间或其他处理
        time.sleep(3)
        self.driver = webdriver.Chrome()
        # 可以设置其他的浏览器选项,例如设置无头模式、添加启动参数等
        # self.driver = webdriver.Chrome(options=chrome_options)
    self.driver.refresh()
    time.sleep(2)

到了这里,关于selenium自动化DevTools连接断开问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Selenium解决滑块验证问题:自动化与技巧

    滑块验证是一种常见的人机验证机制,用于识别和防止自动化程序的访问。在爬虫和自动化测试中,我们经常面临需要处理滑块验证的情况。本文将介绍如何使用 Selenium 库处理滑块验证问题。 一、安装 Selenium 首先,确保你已经安装了 Selenium。你可以使用以下命令通过 pip 安

    2024年01月25日
    浏览(50)
  • Selenium 自动化测试如何优雅的解决图片验证码问题

    说到自动化测试那一定避不开登陆注册页面,而大多数情况下这两个简单的页面都存在一个小困难就是验证码,以前我的解决办法都是在测试环境粗暴的写死一个万能验证码,或者给程序一个10秒钟的线程阻塞,手动输入验证码以跳过这个步骤。这样就可以不那么优雅的实现

    2024年02月14日
    浏览(43)
  • selenium自动化的时候网址重定向问题的解决思路

    因为我们系统是用企业微信扫码登录的,就输入网址 management-xxx.xxx.com 以后,url就会重定向到企业微信授权的url : https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?state=xxxredirect_uri=management-xxx.xxx.com ,直到获取auth_code之后登录成功,然后再跳回首页。 但是因为重定向导致domain变了

    2024年02月05日
    浏览(48)
  • 干货整理,Selenium 自动化测试常见异常问题 +解决方法(详细)

    异常1:Stale Element Reference Exception 直译异常 Stale Element Reference Exception:陈旧元素引用异常 首先,啥情况下会出现这异常 简单来说就是,页面元素过期了,无法引用元素 出现这异常的常见原因 The element has been deleted entirely:该元素已被删除【更常见】 The element is no longer attac

    2024年02月08日
    浏览(45)
  • 解决python+selenium自动化,打开谷哥浏览器窗口么会自动关闭问题

    # 导包 from selenium import webdriver from selenium.webdriver.common.by import By # 实例化浏览器,且浏览器对象的初始化放在定义的方法函数外,以全局变量的形式使用 wd = webdriver.Chrome() # 已配置环境变量 def get(): #

    2024年02月14日
    浏览(53)
  • 自动化测试之selenium的chromedriver安装、配置的全部问题详解(保姆级教程)

    因为对自动化测试很感兴趣,本人研究了好一段时间相关selenium的东西,在配置chromedriver的过程中遇到了很多问题,当即在网上找了很多资料,看了很多的文章,可是由于文章太过琐碎(或者说以我的知识理解能力感觉说的都不是很详细),很久都没能解决问题,这导致我学

    2024年02月04日
    浏览(49)
  • selenium+python自动化测试 —— 解决无法启动IE浏览器及报错问题!

    前言:记录启动IE浏览器的报错及解决方法。 错误1: selenium.common.exceptions.WebDriverException: Message: \\\'IEDriverServer.exe\\\' executable needs to be in PATH. Please download from http://selenium-release.storage.googleapis.com/index.html and read up at https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver Exception ignored i

    2024年02月03日
    浏览(57)
  • 【selenium】自动化测试中,元素无法点击定位等问题的解决:js的使用方法

    在自动化测试中经常会遇到使用selenium方法定位元素点击操作失败的情况,例如,我们想实现在浏览器输入http://www.baidu.com,进入百度首页后,鼠标悬停在“更多产品”上,点击“全部产品” 若不使用js的话,代码应该如下图所示: 我们执行代码后,发现会报错 我们该如何解

    2024年02月08日
    浏览(44)
  • python selenium框架解决ip代理框不能自动化登录,解决pyautogui开不了多线程问题

    有时候我们使用python自动化框架的时候,打开一个网页的时候,它会出现出线这一种登录框,我们f12检查不了,用开发者工具强制检查里面没有任何属性. 那这时候我们就可以用到python第三方库:pyautogui PyAutoGUI:是一个Python库,可用于自动化GUI(图形用户界面)程序的任务。它可以让

    2024年02月07日
    浏览(67)
  • Web自动化测试:selenium的使用以及关于driver=webdriver.Firefox()无驱动报错问题

    Selenium是一个用于Web应用程序测试的工具。 主流的自动化测试工具有: web自动化测试:selenium、robot framework App端自动化测试:Appium、Monkeyrunner、UIautomation PC客户端(win32)自动化测试:QTP 接口自动化测试:Jmeter、Postman、httpUnit、RESTClient 云测平台:Testin Testbird 性能测试:Jm

    2024年02月09日
    浏览(69)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包