selenium 如何阻止Selify在执行过程中关闭驱动程序?

uhry853o  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(158)

我正在努力学习 selenium 来刮一些重Java脚本的网站。我可以很好地定位和提取信息。然而,我发现对于某些站点,我需要更换我的用户代理。为了测试它,我采用了以下方法:

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")

代码起作用了,我的用户代理被切换了,但是现在发生了一个以前没有发生过的错误。在我没有指定driver.quit()参数的情况下,Web驱动程序/浏览器(Chrome驱动程序)在显示网站一秒钟后自动关闭。当我没有切换我的用户代理时,它不会关闭,除非我这样做了,并且我想在关闭页面之前研究一下它。我试着使用time.sleep()等待,但这不起作用。
如何才能使Web驱动程序在指定之前不关闭?
非常感谢您的回答,最好是带有如何实现解决方案的代码示例。

ruarlubt

ruarlubt1#

我不确定这个问题是否可能与您正在使用的Web驱动程序版本有关,但当我尝试将time.sleep(n)添加到您的代码中,同时使用webdriver_manager库下载最新版本的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)
atmip9wb

atmip9wb2#

这应该会对你有好处:

options.add_experimental_option("detach", True)

在您的代码中:

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}')
options.add_experimental_option("detach", True)

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

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

相关问题