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



当我修改代码以使用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而不是远程WebDriver时,工作正常。

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:WebDriverschromedriver.exe -jar selenium-server-standalone-2.53.1.jar -role node

路径的开头有两个斜杠:
"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);

相关内容

  • 没有找到相关文章

最新更新