gpt4 book ai didi

java - 尝试使用 Gecko 驱动程序运行 selenium Grid 代码时获取 "The path to the driver executable must be set by the webdriver.gecko.driver "

转载 作者:行者123 更新时间:2023-11-30 02:30:31 25 4
gpt4 key购买 nike

我在selenium Grid的帮助下运行基本的selenium代码。

以下是步骤:

第 1 步:- 下载最新版本的selenium Standalone 服务器 (3.4.0)

第 2 步:- 使用命令 java - jar <path of selenium standalone server>\\selenium-server-standalone-3.4.0.jar -role hub 创建HUB -> 运行成功

第 3 步:- 使用命令 java -jar selenium-server-standalone-3.4.0.jar -role hub -node http://localhost:4444/grid/register 创建节点-> 运行成功

第 4 步:- 使用以下代码创建了一个简单的 selenium 程序:

public class ClassName {

public static void main(String args[]) throws InterruptedException, MalformedURLException {
System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");
DesiredCapabilities cap=DesiredCapabilities.firefox();
cap.setPlatform(Platform.WINDOWS);
cap.setBrowserName("firefox");
URL url = new URL("http://localhost:4444/wd/hub");

WebDriver wd1 = new RemoteWebDriver(url, cap);
wd1.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
wd1.manage().window().maximize();

wd1.get("http://www.clickindia.com/");
wd1.findElement(By.linkText("Post Free Ad")).click();
Thread.sleep(3000);
wd1.findElement(By.linkText("Select category manually")).click();
Thread.sleep(3000);
WebElement country = wd1.findElement(By.id("combo_0"));
Select sel = new Select(country);
sel.selectByVisibleText("Jobs");
}
}

运行上面的代码时抛出以下异常:

Exception Image

注意:如果我在没有 remoteDriver 的情况下运行上述代码并将其作为常见的 WebDriver 程序,那么它可以正常工作和运行。

selenium 独立服务器和 Gecko 文件的位置相同。

Gecko 版本为 v0.16.0

提前致谢

最佳答案

错误消息表明 Selenium 无法在以下位置找到 GeckoDriver 二进制文件:

  1. PATH 环境变量中的任何位置以及
  2. 它无法通过代表 geckodriver 二进制文件位置的 JVM 参数 (System.getProperty("webdriver.gecko.driver")) 找到任何有效值。

线路

System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe");

确保只有当前 JVM(执行 ClassName.main() 方法的 JVM)知道 geckodriver 二进制文件的位置。这就是为什么当您使用 FirefoxDriver 时您的代码运行良好。

但是当您使用 RemoteWebDriver 时,即在网格模式下,您尝试针对网格设置运行,通过 JVM 参数设置 geckodriver 位置 "webdriver.gecko .driver” 不会对其他 JVM 产生任何影响(请记住,负责支持浏览器交互的节点是使用命令 java -jar selenium-server-standalone 在单独的 JVM 下分离出来的-3.4.0.jar -role hub -node http://localhost:4444/grid/register (您的第 3 步)。

要解决此问题,您有两种选择。

  1. 在生成节点时使用 JVM 参数 -Dwebdriver.gecko.driver 并指定 geckodriver 的位置。
  2. 您将 geckodriver 二进制文件下载到一个文件夹中,并将其位置作为 PATH 的一部分包含在内。变量(即将 C:\\geckodriver.exe 添加到 PATH 变量中)

关于java - 尝试使用 Gecko 驱动程序运行 selenium Grid 代码时获取 "The path to the driver executable must be set by the webdriver.gecko.driver ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44412384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com