使用无头模式的Selenium chromedriver在从SSH执行时无法启动

时间:2018-01-11 14:21:25

标签: python google-chrome selenium centos7 xvfb

我找过类似的问题,但找不到任何问题。

我正试图在CentOS 7平台上以无头模式(使用Selenium)运行chrome浏览器。该网站使用SSL(我必须在运行Chrome客户端的计算机上本地下载并安装证书,因此它可以确认它。在此之前,我已经获得'SSL证书'问题)

当我使用 GUI 环境(KDE)运行我的脚本时,一切正常。也在无头模式。

但是,如果我通过SSH连接到机器并执行相同的脚本 - 驱动程序无法“打开”chrome,加载页面,没有元素等等。

这是代码段:

from pyvirtualdisplay import Display
import os
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = '/opt/google/chrome/chrome'
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--ignore-certificate-errors')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--window-size=1024,768')
os.environ['webdriver.chrome.driver'] = driver_path

display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Chrome(driver_path, chrome_options=chrome_options,
                          service_args=['--verbose', '--log-path=/tmp/chromedriver.log'])

我怀疑它与 Xvfb (由pyvirtualdisplay启动)有某种关系。我还检查了两种情况之间是否存在不同的环境变量,但无法指出丢失的部分。

我已经检查了两种方案之间的chromedriver日志的差异(从SSH运行与使用GUI运行相比), 我打印出这个错误:

ERROR:cert_verify_proc_nss.cc(922)] CERT_PKIXVerifyCert for mysite failed err=-8179

我不确定这是否相关,可能是其他内容,因为我信任此客户端到此网络服务器(SSL信息是安全的)。

欢迎任何建议。我正试图在几天内解决这个问题。

0 个答案:

没有答案