Python3.6 selenium webdriver错误X显示用于发送无法使用Xvfb的键

Python3.6 selenium webdriver错误X显示用于发送无法使用Xvfb的键,python,python-3.x,selenium,google-chrome,selenium-webdriver,Python,Python 3.x,Selenium,Google Chrome,Selenium Webdriver,我正在使用SeleniumWebDriver.Chrome为我的测试环境创建一个具有特定功能的webdriver class MyDriver(webdriver.Chrome): def __init__(self, executable_path="chromedriver", port=0, chrome_options=None, service_args=None, desired_capabiliti

我正在使用SeleniumWebDriver.Chrome为我的测试环境创建一个具有特定功能的webdriver

    class MyDriver(webdriver.Chrome):
          def __init__(self, executable_path="chromedriver", port=0,
              chrome_options=None, service_args=None,
              desired_capabilities=None, service_log_path=None):
          super().__init__(executable_path, port, chrome_options, service_args,
                      desired_capabilities, service_log_path)  
              # vdisplay = Xvfb()
              # vdisplay.start()
部分测试包括使用
元素发送键。发送键(值)
, 测试运行正常,直到几天前它开始崩溃,并显示以下消息:

> SeliuM.Cusi.Exvuts.WebDeRuleExpRe:消息:未知错误:键代码转换需要X显示,考虑使用XVFB (会话信息:chrome=59.0.3071.115) (驱动程序信息:chromedriver=2.27.440175(9BC1D90B8BFA4DD181FBBF769A5EB5E5755320),平台=Linux 4.10.0-22-generic x86_64)

我一次又一次地搜索和研究我不理解错误

我正在使用:

  • Python 3.6
  • 皮查姆
  • chromedriver linux_64位2.27.440175
我发现的唯一有用的链接是at打开的一个bug:但我不熟悉这些工具

我想知道,如果有人有一个解决方案发送钥匙或修复这个错误,我已经尝试删除铬和降级它。。。这没用

任何帮助都将不胜感激


感谢

在Xvfb长期存在此问题后,我采用了一种新方法来运行selenium测试,而不显示:

class MySolutionsDriver(webdriver.Chrome):
    def __init__(self, executable_path=PATH_chromedriver, port=0,
             chrome_options=None, service_args=None,
             desired_capabilities=None, service_log_path=None):
        # vdisplay = Xvfb()
        # vdisplay.start()

        # for full screen uncheck two lines below and import of Options
        chrome_options = Options()
        chrome_options.add_argument('--headless')
        chrome_options.add_argument('--start-maximized')
        chrome_options.add_argument('disable-infobars')
        chrome_options.add_argument('--disable-extensions')
        chrome_options.add_argument('--no-sandbox')
        chrome_options.add_argument('--disable-dev-shm-usage')
        chrome_options.add_argument("--incognito")

        super().__init__(executable_path, port, chrome_options, service_args,
                     desired_capabilities, service_log_path)
使用chrome_选项并使用
add_argument
函数添加参数,为了在不显示的情况下运行测试,我使用了>“--headless”

除此之外,我还发现了许多可以补充的好论点

希望这能帮助任何人解决这个问题


PS:仅供参考-Xvfb在windows(或据我所知的Microsoft服务器)上不工作。

尝试了[使用[回答,但没有帮助!找到解决方案吗?没有,我没有…我刚刚删除了我的chrome驱动程序并下载了一个新的…必须在它工作的时候…这个项目是在Jenkins上运行的,所以我只添加了Xvfb,以便它在没有display@traw1234我已经发布了一个答案,希望它能帮助你……“需要编辑”意思是:任何人都可以通过改进格式和解决小问题来解决问题。但是,每当提出问题的OP需要添加更多信息时,你应该寻找一个有效的接近理由。如果你认为“我可以通过编辑来解决这个问题,我现在没有时间”,请只投票“编辑”.我希望这是有道理的。除此之外:我很感激这次快速而友好的回归!但是可以肯定的是:给OP一个评论,告诉他出了什么问题,通常会很有帮助。。。