我试着写一个简单的脚本,每小时检查一次网站,当发现有可用性时给我发一封电子邮件。
我想这样做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
我是一个初学者,所以任何帮助将不胜感激。
2条答案
按热度按时间plupiseo1#
您只需要将这一行移动到get_stock()函数的开头
可能已经太晚了,但可能会派上用场
abithluo2#
此错误消息...
...意味着 ChromeDriver 无法启动/生成/与 Browsing Context(即 Chrome Browser 会话)通信。
根本原因
此错误的根本原因可能是以下原因之一:
driver.close()
或driver.quit()
,你就调用了任何WebDrivermethod。溶液
确保:
tearDown(){}
方法中调用driver.quit()
,以优雅地关闭和销毁 WebDriver 和 Web Client 示例。参考文献
您可以在以下内容中找到一些相关的详细讨论: