如何阻止 Selenium 在执行期间关闭驱动程序?

How do I stop Selenium from closing the driver during execution?

我正在尝试学习 Selenium 来抓取一些 Javascript 繁重的网站。我可以很好地定位和提取信息。但是,我发现对于某些站点,我需要切换我的用户代理。我通过以下方式进行测试:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from fake_useragent import UserAgent 


PATH ="C:/my/path/to/chromedriver.exe"

ua = UserAgent()
userAgent = ua.random
print(userAgent)

options = Options()
options.add_argument(f'user-agent={userAgent}')
driver = webdriver.Chrome(chrome_options=options, executable_path=PATH)

driver.get("https://www.whatismybrowser.com/detect/what-is-my-user-agent")

代码有效并且我的用户代理已切换,但是现在出现了一个以前没有出现过的错误。 webdriver/browser(Chrome 驱动程序)在显示网站一秒钟后自动关闭,而我没有指定 driver.quit() 参数。当我不切换我的用户代理时,它不会关闭,除非我这样做并且我想在关闭它之前稍微研究一下页面。我尝试使用 time.sleep() 等待,但这不起作用。

如何让 webdriver 在指定之前不关闭?

非常感谢您的回答,最好附上如何实施该解决方案的代码示例。

我不确定问题是否可能与您正在使用的 webdriver 版本有关,但是当我在使用 webdriver_manager 库时尝试将 time.sleep(n) 添加到您的代码时下载最新版本 ChromeWebDriver 我有机会查看网站,但浏览器直到计时器结束才关闭。

我的代码:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from fake_useragent import UserAgent 
from webdriver_manager.chrome import ChromeDriverManager
import time

# PATH ="C:/my/path/to/chromedriver.exe"

ua = UserAgent()
userAgent = ua.random
print(userAgent)

options = Options()
options.add_argument(f'user-agent={userAgent}')
driver = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=options)
driver.get("https://www.whatismybrowser.com/detect/what-is-my-user-agent")
time.sleep(100)