Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Can';t在容器内启动selenium测试,WebDriverException:Chrome无法启动:异常退出_Python_Bash_Selenium_Docker - Fatal编程技术网

Python Can';t在容器内启动selenium测试,WebDriverException:Chrome无法启动:异常退出

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

我的问题是-我不能在容器内启动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 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ааааа,:)аачааа!