例外:驱动程序可执行文件的路径必须由 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
当我使用 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