gpt4 book ai didi

python - 如果我在 Chrome 选项中指定 user-data-dir,Selenium chromedriver 会挂起

转载 作者:行者123 更新时间:2023-12-04 12:18:44 32 4
gpt4 key购买 nike

如果我指定 chrome_options,那么它会挂起:

params = {'executable_path': path_to_driver}
if self._chrome_options is not None:
params['chrome_options'] = self._chrome_options
print "# before construct"
self._driver = webdriver.Chrome(**params)
print "# after construct"

所以,消息 after_construct未显示。在 chrome_options我通过了字符串:
user-data-dir=/home/sergzach/.config/google-chrome 

因此,Chrome 正在启动并进入我的正常配置文件。但是 Python脚本卡在构建 self._driver我无法继续使用 Python 脚本。

如果我不通过 self._chrome_options ( None ) 然后一切正常:Chrome 正在启动并且执行得更远( before_constructafter_construct 都在打印)。

如果我通过空 chrome_options :
webdriver.ChromeOptions()

然后它不会挂起。

Installed Chrome version: 55.0.2883.75 (64-bit)

webdriver version: 2.25.426924

OS: Ubuntu.



更新

有一个回溯(它在脚本挂起后大约 20 秒内引发):

File "test.py", line 6, in <module>
w.start()
File "/usr/local/lib/python2.7/dist-packages/walker/walker.py", line 164, in start
self._driver = webdriver.Chrome(**params)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/chrome/webdriver.py", line 70, in __init__
desired_capabilities=desired_capabilities)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 179, in start_session
response = self.execute(Command.NEW_SESSION, capabilities)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320),platform=Linux 4.2.0-42-generic x86_64

更新

这是因为 Chrome 无法连接到远程调试器。我输出日志:

...
params.update(service_args=['--verbose'])
params.update(service_log_path='/tmp/selenium.log')
...
self._chrome_options.add_argument("--verbose")
...

我看到了 reason .但我不知道如何关闭选项 --remote-debugging-port=xxxx这是传递给 chrome 驱动程序。好的,让我们进一步分析来源。

最佳答案

只有一个客户端可以一次连接到调试器。因此,为了解决这个问题,当我们想要使用调试器进入用户配置文件时 - 为避免 chromedriver 在尝试连接调试器时挂起,我们必须关闭现有的 Chrome session (我再次分享 this conversation)。

关于python - 如果我在 Chrome 选项中指定 user-data-dir,Selenium chromedriver 会挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41941573/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com