Python Can';t在容器内启动selenium测试,WebDriverException:Chrome无法启动:异常退出
我的问题是-我不能在容器内启动selenium测试 我的docker文件如下所示:Python Can';t在容器内启动selenium测试,WebDriverException:Chrome无法启动:异常退出,python,bash,selenium,docker,Python,Bash,Selenium,Docker,我的问题是-我不能在容器内启动selenium测试 我的docker文件如下所示: FROM selenium/node-chrome EXPOSE 9090 USER root RUN mkdir /code WORKDIR /code ADD requirements_tests.txt /code/ RUN apt-get update RUN apt-get install -y python python-dev python-distribute python-pip RUN
FROM selenium/node-chrome
EXPOSE 9090
USER root
RUN mkdir /code
WORKDIR /code
ADD requirements_tests.txt /code/
RUN apt-get update
RUN apt-get install -y python python-dev python-distribute python-pip
RUN pip install -r requirements_tests.txt
ADD /selenium_tests HTMLTestRunner.py launch_selenium_tests.py chromedriver /code/
/selenium\u tests
包含所有我的测试,launch\u selenium\u tests.py
-我的测试启动器
import time
from pyvirtualdisplay import Display
import os
class SeleniumTestCase(unittest.TestCase):
def __init__(self, *args, **kwargs):
"""
todo add validation for arguments
:param args:
:param kwargs:
"""
super(SeleniumTestCase, self).__init__(args[0])
self.base_url = args[1]
def setUp(self):
chromedriver = "./chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
self.driver = webdriver.Chrome(executable_path='./chromedriver')
self.display = Display(visible=0, size=(800, 800))
self.display.start()
这是我的测试用例
文件
因此,当我使用-it/bin/bash(与终端的交互模式)启动docker容器并启动测试时,我得到以下错误消息:
WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.20.353124 (035346203162d32c80f1dce587c8154a1efa0c3b),platform=Linux 4.2.0-35-generic x86_64)
我已经尝试用selenium切换容器,重写一些代码行,但没有任何效果
你知道我如何解决这个问题吗?我建议两件事: 快速-启动驾驶员前启动
显示屏
,以便代码:
def setUp(self):
chromedriver = "./chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
self.display = Display(visible=0, size=(800, 800))
self.display.start()
self.driver = webdriver.Chrome(executable_path='./chromedriver')
其次,我强烈建议对selenium webdriver使用服务日志路径
和服务参数
参数来查看chromedriver的输出:
service_log_path = "{}/chromedriver.log".format(outputdir)
service_args = ['--verbose']
driver = webdriver.Chrome('/path/to/chromedriver',
service_args=service_args,
service_log_path=service_log_path)
这可能会提供驾驶员未能启动的原因的缺失信息,伙计,很多:3实际上,我已经与显示器和驾驶员切换线路,其工作非常好:3ааааа,:)аачааа!