【问题标题】:Why does Selenium headless browser using Chrome cause unknown error: net::ERR_CONNECTION_RESET为什么使用 Chrome 的 Selenium 无头浏览器会导致未知错误:net::ERR_CONNECTION_RESET
【发布时间】:2022-01-11 22:48:58
【问题描述】:

我试图弄清楚为什么我无法使用 Selenium + Chrome 加载 this website 而不会发现错误(其他网站加载正常)

selenium.common.exceptions.WebDriverException: Message: unknown error: net::ERR_CONNECTION_RESET (Session info: headless chrome=97.0.4692.71).

当我在没有--headless 参数的情况下运行程序时,它可以正常工作。无论我如何实现浏览器的无头方面,都会发生错误。例如options.headless=True, options.add_argument("--headless") 都产生相同的错误。我注意到其他人有 similar issues,这就是我了解到关闭 --headless 确定问题根源的方式。

这似乎是 Chromedriver 的问题,因为我能够使用 Firefox 无头浏览器和 GeckoDriver 加载网页。

为了确保这不是与 Chromedriver 版本相关的问题,我安装了 ChromedriverManager。

我尝试在不同点添加睡眠功能,以防添加等待时间模仿浏览器的打开等,但不会产生任何不同的结果。火狐无头浏览器在技术上解决了,但是pythonanywhere不支持了,所以不能上线了。

下面的完整输出。谢谢

这是要运行的代码:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--disable-gpu")
chrome_options.headless = True
website = 'https://appft.uspto.gov/'
s = Service(ChromeDriverManager().install())

driver = webdriver.Chrome(options=chrome_options, service=s)

driver.get(website)

这是输出

 ====== WebDriver manager ======
    Current google-chrome version is 97.0.4692
    Get LATEST chromedriver version for 97.0.4692 google-chrome
    Driver [C:\Users\Compuester\.wdm\drivers\chromedriver\win32\97.0.4692.71\chromedriver.exe] found in cache
    Traceback (most recent call last):
      File "C:/Users/Compuester/PycharmProjects/selenium/testes.py", line 13, in <module>
        driver.get(website)
      File "C:\Users\Compuester\anaconda3\envs\selenium\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 436, in get
        self.execute(Command.GET, {'url': url})
      File "C:\Users\Compuester\anaconda3\envs\selenium\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute
        self.error_handler.check_response(response)
      File "C:\Users\Compuester\anaconda3\envs\selenium\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
        raise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: unknown error: net::ERR_CONNECTION_RESET
      (Session info: headless chrome=97.0.4692.71)
    Stacktrace:
    Backtrace:
        Ordinal0 [0x00ADFDC3+2555331]
        Ordinal0 [0x00A777F1+2127857]
        Ordinal0 [0x00972E08+1060360]
        Ordinal0 [0x0096F9B1+1046961]
        Ordinal0 [0x009659BD+1006013]
        Ordinal0 [0x009665D0+1009104]
        Ordinal0 [0x00965C1E+1006622]
        Ordinal0 [0x0096527D+1004157]
        Ordinal0 [0x009643FA+1000442]
        Ordinal0 [0x009646B6+1001142]
        Ordinal0 [0x009743FA+1065978]
        Ordinal0 [0x009C7BAD+1407917]
        Ordinal0 [0x009B7B0C+1342220]
        Ordinal0 [0x009C75FA+1406458]
        Ordinal0 [0x009B7976+1341814]
        Ordinal0 [0x009936B6+1193654]
        Ordinal0 [0x00994546+1197382]
        GetHandleVerifier [0x00C79622+1619522]
        GetHandleVerifier [0x00D2882C+2336844]
        GetHandleVerifier [0x00B723E1+541697]
        GetHandleVerifier [0x00B71443+537699]
        Ordinal0 [0x00A7D18E+2150798]
        Ordinal0 [0x00A81518+2168088]
        Ordinal0 [0x00A81660+2168416]
        Ordinal0 [0x00A8B330+2208560]
        BaseThreadInitThunk [0x75C7FA29+25]
        RtlGetAppContainerNamedObjectPath [0x77947A9E+286]
        RtlGetAppContainerNamedObjectPath [0x77947A6E+238]


Process finished with exit code 1

【问题讨论】:

    标签: selenium selenium-chromedriver pythonanywhere


    【解决方案1】:

    我认为s = Service(ChromeDriverManager().install())有问题

    请使用以下代码:

        from selenium import webdriver    
        from selenium.webdriver.chrome.options import Options
        from webdriver_manager.chrome import ChromeDriverManager
        
        
        chrome_options = Options()    
        chrome_options.add_argument('--disable-gpu')
        
        driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options = chrome_options)
        link = "your site url"
        dirver.get(link)
    

    【讨论】:

    • 嘿维克多,我仍然收到同样的错误,但感谢您的努力!
    猜你喜欢
    • 1970-01-01
    • 2018-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多