如何在Selenium4WebDiverer-Manager中实现无头选项?

dm7nw8vv  于 2022-10-02  发布在  Python
关注(0)|答案(2)|浏览(188)

我只有一个障碍需要克服,然后我才能真正完成我的第一个机器人,那就是找出将Options类放在哪里(?)为了在无头模式下运行ChromeDriverManager,它会停止打开Chrome示例!调用驱动程序的方式是:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager
    options = Options()
    options.headless = True
    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))

由于按路径调用Web驱动程序的旧方法尚未完全弃用,但我认为与新的Web驱动程序管理器相关的问题并不多。我发现只有一两种方法不起作用,比如在.install()后添加,options=options或混合使用.options。无论如何,任何建议都将不胜感激。

qlzsbp2j

qlzsbp2j1#

试试这个:

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(ChromeDriverManager().install(), options=options)
yv5phkfx

yv5phkfx2#

我打了这条评论,但一直没有写完,所以我很抱歉。在无头模式下运行Selenium4WebDiverer-Manager的正确代码确实是:

options = Options()
    options.headless = True                                                  #
    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)

# as opposed to what I was trying:                                            #

    driver = webdriver.Chrome(service=Service(ChromeDriverManager().install(),options=options))

我认为‘Options’只需要是webdriver.Chrome()的直接参数,所以我认为这也应该是可行的:

driver = webdriver.Chrome(service=Service,options=options(ChromeDriverManager().install()))

此外,我想我已经明白了,无头模式让网站更容易将你标记为机器人,并提示你进行验证码。在运行了一段时间后,由于验证码或代码更改中的错误,我的机器人在无头模式下无法使用搜索功能,但在禁用它的情况下运行得很好。

相关问题