【问题标题】:How do I stop Selenium from closing the driver during execution?如何阻止 Selenium 在执行期间关闭驱动程序?
【发布时间】:2022-01-09 07:49:29
【问题描述】:

我正在尝试学习 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")

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

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

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

【问题讨论】:

    标签: python selenium selenium-webdriver web-scraping selenium-chromedriver


    【解决方案1】:

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

    我的代码:

    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)
    

    【讨论】:

    • 现在它工作了,但如果我想执行多个操作,它会变得很烦人。谢谢 :)
    • 酷!我建议您使用input("continue?") 而不是time.sleep(n),当您完成一页后,您可以在终端中按回车键,它会跳过它。另外,如果答案是正确的,你能接受吗?谢谢!
    • 谢谢,效果更好。我现在已经接受了你的回答;)
    猜你喜欢
    • 2014-01-26
    • 2021-04-08
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    相关资源
    最近更新 更多