在selenium网格中注册新节点时,我使用-D java参数指定可执行驱动程序的路径:
java -Dwebdriver.chrome.driver="../driver/chromedriver.exe" -jar selenium-server-standalone-3.3.1.jar -role node -hub http://localhost:4445/grid/register -nodeConfig config/defaultNodeConfig.json我想使用webdrivermanager库(https://github.com/bonigarcia/webdrivermanager)来管理驱动程序可执行文件。但是它使用System.setProperty()注册驱动程序,所以它只在运行库的JVM中可用(我弄错了吗?)
我的问题是:
在启动webdrivermanager-java节点之前,从命令行调用的正确方法是什么,以及如何将下载的驱动程序的路径导出到selenium节点的-D java参数?
我有一个想法,创建一个微小的“节点运行程序”java应用程序,并在其中调用webdrivermanager和selenium-server-standalone.jar,因此它们使用相同的JVM环境。
是否有更好的解决方案来使用webdrivermanager来设置节点的驱动路径?
发布于 2017-04-12 09:14:28
实际上,IMHO最好的选择是创建一个首先调用WebDriverManager的Java应用程序,然后在集线器中注册节点。就像这样:
属地
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-server</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.0.1</version>
</dependency>
</dependencies>启动硒中心的应用程序
import org.openqa.grid.selenium.GridLauncherV3;
public class StartHub {
public static void main(String[] args) throws Exception {
GridLauncherV3.main(new String[] { "-role", "hub", "-port", "4444" });
}
}应用程序在集线器中注册节点(本例中为Chrome)
import org.openqa.grid.selenium.GridLauncherV3;
import io.github.bonigarcia.wdm.WebDriverManager;
public class StartNode {
public static void main(String[] args) throws Exception {
WebDriverManager.chromedriver().setup();
GridLauncherV3.main(new String[] { "-role", "node", "-hub",
"http://localhost:4444/grid/register", "-browser",
"browserName=chrome" });
}
}https://stackoverflow.com/questions/43320049
复制相似问题