我正在尝试将Serenity BDD测试框架与JUnit一起使用,而不是直接使用Selenium,但是我不知道如何以一种可以运行的方式为Serenity管理的WebDriver实例提供Selenium Hub的URL。在Eclipse中进行测试(使用“运行方式> JUnit测试”)。

正确使用@Manageddriver="remote"尝试创建org.openqa.selenium.remote.RemoteWebDriver实例...

@RunWith(SerenityRunner.class)
public class SerenityIT {
    @Managed(driver="remote") WebDriver browser;
    //[...]
}


...但这失败了


  造成原因:java.lang.NullPointerException:在null
  java.net.URL。(URL.java:532)〜[na:1.8.0_151]


这并不奇怪,因为没有指定URL。那么我应该如何传递Selenium Hub URL?

最佳答案

这就使得我们的Serenity在从Eclipse运行测试时也会加载serenity.properties,即使没有记录也没有暗示。我写了一个,然后Serenity找到了,控制台中的日志确认了这一点:


  调试[net.thucydides.core.util.PropertiesFileLocalPreferences:115]-
  从中加载本地属性
  /integration-testing/serenity.properties


然后可以按照webdriver.remote.url的记录提供Selenium Hub的URL。以下是我当前使用的属性,并带有传递Firefox首选项的示例。

webdriver.driver=remote
webdriver.remote.driver=firefox
webdriver.remote.url=http://127.0.0.1:4444/wd/hub
webdriver.timeouts.implicitlywait=10000
firefox.preferences=devtools.jsonview.enabled=false

09-27 18:45