我找过类似的问题,但找不到任何问题。
我正试图在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信息是安全的)。
欢迎任何建议。我正试图在几天内解决这个问题。