Chrome 最大重试错误 selenium

yizd12fk  于 2023-04-03  发布在  Go
关注(0)|答案(2)|浏览(108)

我试着写一个简单的脚本,每小时检查一次网站,当发现有可用性时给我发一封电子邮件。
我想这样做evey小时不应该触发任何问题,但我得到以下错误:

MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=60745): Max retries exceeded with url: /session/900f45d6c8c800f2a8ebcf43daa05b69/url (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa42c261c10>: Failed to establish a new connection: [Errno 61] Connection refused'))

这是我的代码:

import schedule
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from notification import *
#script i have to send an email (works fine)

PATH = "mypath"
# i have the path where there drivers are

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")
# to not open the browser

driver = webdriver.Chrome(options=chrome_options, executable_path=PATH)

def get_stock():
    driver.get("website i'm trying to check")
    # access the website
    search = driver.find_element_by_name("add")
    # add is the name of the button i wanna check
    result = search.is_enabled()
    print(result)
    driver.quit()

schedule.every().hour.do(get_stock)
# run the get_stock function every hour

c = 0
# initialize the loop

while c == 0:
    schedule.run_pending()
    c = get_stock()
    # set the seed equal to the get_stock so that it stops once it becomes True
    time.sleep(1)
    print(get_stock())

email("Now there's a stock.")
#using my notification script to send the email

我是一个初学者,所以任何帮助将不胜感激。

plupiseo

plupiseo1#

您只需要将这一行移动到get_stock()函数的开头

driver = webdriver.Chrome(options=chrome_options, executable_path=PATH)

可能已经太晚了,但可能会派上用场

abithluo

abithluo2#

此错误消息...

MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=60745): Max retries exceeded with url: /session/900f45d6c8c800f2a8ebcf43daa05b69/url (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fa42c261c10>: Failed to establish a new connection: [Errno 61] Connection refused'))

...意味着 ChromeDriver 无法启动/生成/与 Browsing Context(即 Chrome Browser 会话)通信。

根本原因

此错误的根本原因可能是以下原因之一:

  • 当驱动程序已经启动了一个元素/多个元素的监视时,如果手动关闭 * 浏览上下文 *,则可能会出现此错误。
  • 如果你已经调用了driver.close()driver.quit(),你就调用了任何WebDrivermethod。
  • 还有一种可能性是,您尝试访问的应用程序正在限制来自您的系统/机器/IP地址/网络的请求。
  • 应用程序已将Selenium驱动的ChromeDriver启动的google-chromeBrowsing Context 识别为bot,并拒绝任何访问。

溶液
确保:

  • 始终在tearDown(){}方法中调用driver.quit(),以优雅地关闭和销毁 WebDriverWeb Client 示例。
  • 诱导WebDriverWait将快速移动的WebDriver沿着 Browsing Context 同步。
  • Selenium 已升级到当前发布的Version 3.141.59
  • ChromeDriver 已更新为当前ChromeDriver v84.0级别。
  • Chrome 已更新到当前 Chrome版本84.0 级别。(根据ChromeDriver v84.0 release notes
  • 如果您的基本 Web Client 版本太旧,请将其卸载,然后安装 Web Client 的最新GA和发布版本。
  • 通过您的 IDE**清理 * 您的 * 项目工作区 *,并仅使用必需的依赖项 * 重建 * 您的项目。

参考文献

您可以在以下内容中找到一些相关的详细讨论:

相关问题