我使用linux下的网络测试分裂(v0.7.3),而铬,默认的示例代码不能在运行:分裂:如何添加铬选项?
from splinter import Browser
from pyvirtualdisplay import Display
d = Display(visible=0, size=(800, 600))
d.start()
b = Browser('chrome')
b.visit('http://www.google.com')
b.quit()
d.stop()
在运行时,我得到了这样的例外:
selenium.common.exceptions.WebDriverException: Message: chrome not reachable
我测试相同功能的硒与一些镀铬选项添加:
from selenium import web driver
from selenium.webdriver.chrome.options import Options
from pyvirtualdisplay import Display
d = Display(visible=0, size=(800, 600))
d.start()
opt = Options()
opt.add_argument('--disable-setuid-sandbox')
b = webdriver.Chrome(chrome_options=opt)
b.get('http://www.google.com')
b.quit()
d.stop()
该工程确定,所不同的是--disable-setuid-sandbox
选项添加到铬驱动程序,如果选项不添加,将有一个僵尸chrome-sandbox
进程chromium-browser
。
这里的问题是,我不知道如何将chrome.options.Option
实例传递给splinter.Browser()
,我浏览了实施splinter/driver/webdriver/chrome.py
下,似乎没有进入到这样一个实例传递给splinter.Browser()
。有没有其他方式可以将选项传递给Chrome驱动程序?
你能告诉我链接吗?我搜索了[文档](https://splinter.readthedocs.io/en/latest/index.html),有一个'desired_capabilities',但只适用于firefox,不幸的是,'chrome_options'不适用于我目前的分裂版本(0.7.3)。 – coanor
@coanor它在Remote WebDiver的文档中(https://splinter.readthedocs.io/en/latest/drivers/remote.html)我认为它不同于Chrome WebDriver,因为它同时创建了一个同一浏览器类的实例。你有没有尝试我的建议? – RemcoW
@coanor以下是浏览器类的源代码https://github.com/cobrateam/splinter/blob/master/splinter/browser.py。正如你所看到的,它只不过是创建一个ChromeWebDriver并传递* args和** kwargs。所以这意味着你可以传递由Selenium WebDriver使用的参数,该参数在https://github.com/SeleniumHQ/selenium/blob/master/py/selenium/webdriver/chrome/webdriver.py#L34 – RemcoW