Chrome 59挂起了--headless和--proxy-server标志

tae*_*esu 5 selenium google-chrome selenium-chromedriver

所以现在Chrome 59有无头支持和适当的驱动程序(Chromedriver 2.30),我尝试将代码迁移到它.

- 无头旗自己工作.
--proxy-server标志本身可以工作,但是
将两者组合在一起会挂起浏览器.

它有解决方法吗?

环境: - 铬59
- Chromedriver 2.30
- 硒2.46.0

码:

from selenium import webdriver
chop = webdriver.ChromeOptions()
chop.add_argument("--headless")
chop.add_argument("--proxy-server=socks5://127.0.0.1:8080")
d = webdriver.Chrome(chrome_options=chop)
print("done")
d.get('http://ipinfo.io')
print(d.page_source)
Run Code Online (Sandbox Code Playgroud)

追溯:

  Traceback (most recent call last):
      File "t.py", line 5, in <module>
        d = webdriver.Chrome(chrome_options=chop)
      File "/home/t/env/lib/python3.5/site-packages/selenium/webdriver/chrome/webdriver.py", line 68, in __init__
        keep_alive=True)
      File "/home/t/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 89, in __init__
        self.start_session(desired_capabilities, browser_profile)
      File "/home/t/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 138, in start_session
        'desiredCapabilities': desired_capabilities,
      File "/home/t/env/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 195, in execute
        self.error_handler.check_response(response)
      File "/home/t/env/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 170, 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.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 4.4.0-21-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

tae*_*esu 1

此错误已得到解决。
我刚刚使用以下设置对其进行了测试:

Ubuntu 16.04 64位
Google Chrome 61.0.3163.59 beta (正式版还挂atm;)
Selenium 3.5.0
ChromeDriver 2.31

不再需要 xvfb。
今天我是一个快乐的人。