如何在循环中重新打开 selenium 浏览器:Python

Posted

技术标签:

【中文标题】如何在循环中重新打开 selenium 浏览器:Python【英文标题】:How to reopen selenium browser in a loop: Python 【发布时间】:2022-01-23 09:26:16 【问题描述】:

我正在尝试关闭浏览器并在循环后重新打开它

class Bot():

driver = webdriver.Chrome(options=chrome_options)

    def __init__(self):
        self.openyoutube
        self.quitbrowser()

    def openyoutube(self):
        self.driver.get('https://www.youtube.com')
        sleep(5)
   
    def quitbrowser(self):
        self.driver.quit()



def main():
    while True: 
        my_bot = Bot()
        sleep(15)

if __name__ == '__main__':
    main()

但是一旦它试图重新开始,它就会抛出这个错误:

raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', 端口 = 64578):最大重试次数超出 url: /session/f7fcdfe14c3e2c75d530b3cbf70348d2/url(由 NewConnectionError(':无法建立新连接:[Errno 61] 连接被拒绝'))

【问题讨论】:

【参考方案1】:
raise MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='localhost', port=64578): Max retries exceeded with url: /session/f7fcdfe14c3e2c75d530b3cbf70348d2/url (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fb6d71f8250>: Failed to establish a new connection: [Errno 61] Connection refused'))

通常在出现此错误后,我们会重新初始化驱动程序,您可以通过对 Maxretryerror 使用 try catch 来执行此操作。

driver = webdriver.Chrome(options=chrome_options)

【讨论】:

感谢您的回复,我尝试捕获 MaxRetryError,但仍然遇到相同的错误。我需要导入一些东西吗?请展示如何捕获错误的示例。我可能做错了。 发布你的做法

以上是关于如何在循环中重新打开 selenium 浏览器:Python的主要内容,如果未能解决你的问题,请参考以下文章

如何设置selenium打开网页超过30秒就重新刷新下?

如何解决Selenium句柄多窗口问题

如何查看selenium api文档

Selenium 不会在 Python 中打开浏览器

selenium 如何在已打开的浏览器上继续运行自动化脚本?

如何查看python selenium的api