无法使用Serenity在远程计算机上运行测试

时间:2019-12-09 07:09:27

标签: docker selenium-webdriver serenity-bdd

我想在本地docker容器上远程运行一个简单测试:

$docker ps -a  
CONTAINER ID         IMAGE                                    COMMAND                  CREATED             STATUS              PORTS                          NAMES 
e559bc98ae9c        selenium/standalone-chrome-debug:latest   "/opt/bin/entry_poin…"   10 seconds ago      Up 6 seconds       0.0.0.0:4444->4444/tcp, 0.0.0.0:5900->5900/tcp   new_selenium

我可以使用selenium config成功运行它:

driverWeb = new RemoteWebDriver(new URL(url), chromeBrowserCapabilities();

但是当我尝试让Serenity控制webdriver生命周期时,出现错误:

Dec 06, 2019 5:31:15 PM org.openqa.selenium.remote.DesiredCapabilities chrome INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()` [main] INFO net.thucydides.core.steps.ConsoleLoggingListener - STEP ERROR: net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate class org.openqa.selenium.chrome.ChromeDriver F[main] INFO net.thucydides.core.steps.ConsoleLoggingListener - STEP ERROR: net.thucydides.core.webdriver.DriverConfigurationError: Could not instantiate new WebDriver instance of type class org.openqa.selenium.chrome.ChromeDriver (session not created: No matching capabilities found Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53' System info: host: 'a77e0051b738', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.9.184-linuxkit', java.version: '1.8.0_222' Driver info: driver.version: unknown remote stacktrace: #0 0x55d7b005a7e9 <unknown>

这是serenity.conf:

webdriver {   driver = chrome   
              timeouts {
                     implicitlywait = 7000
                     fluentwait = 10000
              } 
         } 
headless.mode = false

chrome.capabilities.acceptSslCerts = true 
chrome.capabilities.handlesAlerts = true

#
# Chrome options can be defined using the chrome.switches property
# 
chrome.switches="""--start-maximized;--test-type;--no-sandbox;--ignore-certificate-errors;
                       --disable-popup-blocking;--disable-default-apps;--disable-extensions-file-access-check;
                       --incognito;--homepage=about:blank;--disable-infobars;--disable-gpu"""

webdriver.chrome.driver = "drivers/chromedriver" 
webdriver.gecko.driver = "drivers/geckodriver"

我不知道为什么会出现此错误以及如何解决。

请帮助我! 谢谢!

2 个答案:

答案 0 :(得分:0)

如果您的节点在docker中运行,请尝试将驱动器配置为远程驱动器。

以下是直接取自宁静文档(https://serenity-bdd.github.io/theserenitybook/latest/serenity-grid.html#_configuring_your_serenity_tests

的示例。
webdriver {
  driver = remote
  remote {
      url="http://localhost:4444/wd/hub"
      driver=chrome
  }
}

答案 1 :(得分:0)

您不需要为此设置功能。您可以在运行测试之前区分本地和远程,如下所示。

运行为;

  

MVN全新安装验证-Dmaven.test.failure.ignore = true

# Remote
webdriver {
  driver = remote
  remote {
      url="http://YOUR_IP:YOUR_PORT/wd/hub"
      driver=chrome
  }
}

#Local
#webdriver {
#  driver = chrome
#}

zalenium {
    screenResolution = "1280x720"
    idleTimeout = 150
}

headless.mode=false
serenity {
  tag.failures = "true"
  linked.tags = "issue"
  restart.browser.for.each = scenario
}

drivers {
  windows {
    webdriver.chrome.driver = src/test/resources/webdriver/windows/chromedriver.exe
  }
  mac {
    webdriver.chrome.driver = src/test/resources/webdriver/mac/chromedriver
  }
  linux {
    webdriver.chrome.driver = src/test/resources/webdriver/linux/chromedriver
  }
}
相关问题