当前位置: 首页 > 知识库问答 >
问题:

无法从Linux服务器以headless模式运行Robot Framework测试-WebDriverException

邹高懿
2023-03-14

我们试图在Linux服务器上以无头模式运行Robot framework测试。当运行Robot测试时,我们得到错误:WebDriverException:Message:unknown error:Devtools端口号文件内容<35674>格式意外。

在此Linux服务器上的chromedriver 2.30和chrome 60.0版本中,在Robot test.curl命令中正确设置chromedriver路径是成功的。所以可能是机器人配置中缺少的东西导致了这个问题。

用两种组合进行测试,结果相同:

Robot Framework-Selenium2Library V3.0,Chrome版本:60.0.3112.90,Chromer驱动程序版本:2.30.477691

*** Settings ***
Library           Selenium2Library
Library           OperatingSystem

*** Variables ***
${url}            https://www.google.com/


*** Test Cases ***
Simple UI Login

Log     Creating WebDriver   WARN
${chrome_options}=  Evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys,selenium.webdriver
${ws}=    Set Variable    window-size=1920,1080
Call Method   ${chrome_options}   add_argument     test-type
Call Method   ${chrome_options}   add_argument     --no-sandbox
Call Method   ${chrome_options}   add_argument     --disable-setuid-sandbox
Call Method   ${chrome_options}   add_argument    --headless
Call Method   ${chrome_options}    add_argument    ${ws}
Call Method   ${chrome_options}   add_argument     --disable-gpu
${options}=  Call Method   ${chrome_options}    to_capabilities
Create WebDriver   Chrome   executable_path=/opt/chromedriver/2.30/chromedriver
desired_capabilities=${options}
Go To   ${url}

共有1个答案

姜德容
2023-03-14

我不确定您在SeleniumLibrary 3.3.1中尝试了什么,所以下面是我在无头模式下在Linux服务器上运行测试所使用的方法。以下是我安装的不同版本:

  • Chrome版本72.0.3626.96
  • ChromeDriver 72.0.3626.69(3C16F8A135ABC0D4DA2DFF33804DB79B849A7C38)
  • robotframework==3.1.1
  • RobotFramework-SeleniumLibrary==3.3.1
  • 硒==3.141.0

从SeleniumLibrary 3.1.0到Selenium 3.8.0或更新版本,Open Browser支持无头Firefox和无头Chrome。这意味着您可以使用无头模式,而无需任何额外的webdriver配置

*** Settings ***
Library     SeleniumLibrary

*** Test Cases ***
Headless Browser Test
    [Setup]    Open Browser    https://stackoverflow.com    Headless Chrome
    Maximize Browser Window

    Title Should Be    Stack Overflow - Where Developers Learn, Share, & Build Careers

    [Teardown]    Close Browser
 类似资料:
  • 我正在尝试在一个使用chrome的Linux服务器上运行一个使用selenium webdriver实现的测试,并且不显示我的java代码 要运行此程序(jar),请使用以下命令启动Xvfb 当我运行程序时,经过一段长时间的等待,我得到了这个异常 当我尝试单独运行chrome时,a遇到了这个问题 问题是: 是在定位驱动程序的问题还是在chrome或我需要一些额外的配置?

  • 系统环境: JVM 11.0.6-打开 Ubuntu 18.04 SDKMAN 5.8.1+484 等级6.1 Chrome版本81.0.4044.138 Chrome驱动程序3.141.59 要运行的代码: 下午4:52:09:正在执行任务“Runner.Main()”... 任务:CompileJava任务:ProcessResources无源任务:类 任务:runner.main()错误:未

  • 我正在使用testNG框架和ANT任务运行Selenium测试。测试在我的windows机器上运行良好。。然后,我将其部署到我的Jenkins CI服务器上,并为无头运行测试进行必要的配置: > 在运行jenkins(CentOS)的服务器上安装了vnc服务器 为jenkins安装了Xvnc插件,并在我的作业配置中启用了“在构建期间运行Xvnc” 然而,我得到以下错误-任何帮助?我已经搜索了网络,

  • 问题内容: 我有一个ParseService,我想对其进行模拟以测试使用它的所有控制器,我一直在阅读有关茉莉花间谍的信息,但对我来说仍然不清楚。谁能给我一个关于如何模拟定制服务并在Controller测试中使用它的示例吗? 现在,我有一个使用服务插入书的控制器: 服务是这样的: 到目前为止,我的测试如下所示: 现在测试失败: 我做错了什么? 问题答案: 我做错的是没有在beforeEach中将模拟

  • 我正在尝试安装SonarQube:我遵循了以下步骤: 设置SOnarQube Tuto:这里 总结一下: > 下载声纳并将其移动到 将这些coonfig步骤添加到: sonar.jdbc.username=sonar sonar.jdbc.password=sonar sonar.jdbc.url=jdbc:mysql:/localhost:3306/sonar?UseUnicode=true&C

  • 我是ActiveMQ Artemis的新手,正在尝试配置主从设置。在我的场景中,我使用一个主从。 Master的如下所示: slave的如下所示: master.log是 从日志: