【发布时间】:2016-06-08 08:14:09
【问题描述】:
我在linux下使用splinter(v0.7.3)进行web测试,而在chrome上,默认示例代码无法运行:
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
我在 selenium 中测试了相同的功能,并添加了一些 chrome 选项:
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()
这个没问题,区别是chrome驱动中添加了--disable-setuid-sandbox选项,如果不添加选项,chromium-browser下会有一个僵尸chrome-sandbox进程。
这里的问题是,我不知道如何将chrome.options.Option实例传递给splinter.Browser(),我浏览了splinter/driver/webdriver/chrome.py下的实现,似乎没有将这样的实例传递给@987654330的入口@。还有其他方法可以将选项传递给 chrome 驱动程序吗?
【问题讨论】:
标签: selenium selenium-chromedriver splinter