例外:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统 属性 设置;使用 Remote WebDriver

Exception: The path to the driver executable must be set by the webdriver.chrome.driver system property; with Remote WebDriver

当我使用 RemoteWebDriver 和 ChromeDriver 将我的代码修改为 运行 时,我得到:异常:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统 属性 设置;

代码:

File file = new File("C:/WebDrivers/chromedriver.exe");
System.setProperty("webdriver.chrome.driver",file.getAbsolutePath());
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", Path_FileDownload);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
driver = new RemoteWebDriver(new URL("http://192.168.224.160:4444/wd/hub"), cap);
//driver = new ChromeDriver(cap);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

文件存在于我运行安装它的 PC 上。当我切换到 ChromeDriver 而不是 Remote WebDriver 时工作正常。

您的路径开头有两条斜线:
"C://WebDrivers" + "/chromedriver.exe"
应该是
"C:/WebDrivers" + "/chromedriver.exe"

Java文件路径使用'/'分隔目录和文件,与基于UNIX的系统相同。

    ChromeOptions options = new ChromeOptions();
    options.setBinary("Chrome_Binary/chrome.exe");
    options.addArguments("--start-fullscreen");
    System.setProperty("webdriver.chrome.driver", "Drivers/Chrome/chromedriver.exe");
    DesiredCapabilities cap = DesiredCapabilities.chrome();
    cap.setCapability(ChromeOptions.CAPABILITY, options);

File file = new File("C:/WebDrivers/chromedriver.exe");
System.setProperty("webdriver.chrome.driver",file.getAbsolutePath());

只有在使用 ChromeDriver 时才有效。我将此模式称为 local 模式,即运行测试用例的 JVM 也会脱离浏览器。

当您使用 RemoteWebDriver 时,您是在 remote 模式下工作,因为从您的测试用例中分离出来的 JVM 会与另一个 JVM(硒节点)对话以分离浏览器。

当您使用 RemoteWebDriver 时,您正在尝试通过集线器连接到另一个 JVM 运行 作为节点。

对于此用例,您需要在节点为 运行:

的机器中执行以下操作之一
  • C:\WebDrivers 添加到您的 PATH 变量。确保通过打开新的命令提示符和 运行 echo %PATH% 确认其已正确添加。您应该在命令输出中看到 C:\WebDrivers(或)
  • 通过添加 webdriver.chrome.driver 作为 JVM 参数来启动您的节点。例如,像这样:java -Dwebdriver.chrome.driver=C:\WebDrivers\chromedriver.exe -jar selenium-server-standalone-2.53.1.jar -role node