java - 无法启动 chrome,即在使用 Selenium 网格的节点上

标签 java selenium selenium-webdriver selenium-grid

我已经运行集线器和节点,我正在尝试在 chrome 浏览器的节点上运行测试,但失败并出现错误:驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统设置属性;

但我已经设置好了。以下是我正在使用的代码:

package seleniumgridpackage;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import org.openqa.selenium.remote.RemoteWebDriver;


public class SeleniumGridTest {
    WebDriver driver;
    String baseUrl = "http://www.google.com";
    String expectedTitle = "Google";

    @BeforeTest
    public void setUp() throws MalformedURLException {
        File file = new File("C://Drivers//chromedriver.exe");
        //File file = new File("C://Drivers//IEDriverServer.exe");
        System.setProperty("webdriver.chrome.driver", file.getAbsolutePath());

        DesiredCapabilities cap = DesiredCapabilities.chrome();
        cap.setBrowserName("chrome");
        cap.setPlatform(Platform.VISTA);
        driver  = new RemoteWebDriver(new URL("http://x.x.x.x:5566/wd/hub"), cap);

    }

    @Test
    public void test(){
        driver.get(baseUrl);
        Assert.assertEquals(driver.getTitle(), expectedTitle);
    }

    @AfterTest
    public void tearDown(){
        driver.quit();
    }
}

注意:我已将 chromedriver.exe 放在节点和集线器的 C://Drivers 文件夹中。当我尝试使用 IE 时出现 Sams

请帮助我理解我做错了什么。

最佳答案

一切都在你如何启动节点。所以首先,做通常的事情:

java -jar -jar selenium-server-standalone-2.20.0.jar -role hub

然后像这样启动节点:

java -jar lib/selenium-server-standalone-2.20.0.jar -role webdriver -hub http://localhost:4444/grid/register -browser browserName="chrome",version=ANY,platform=WINDOWS,maxInstances=5 -Dwebdriver.chrome.driver=lib\chromedriver.exe 

更具体地说:您必须使用参数 browser 启动 NODE 并添加 -D 参数指定 chromedriver 的完整路径

非常感谢 John Naegle,他在这里回答了关于 Internet Explorer 的类似问题 - 请参阅 here

关于java - 无法启动 chrome,即在使用 Selenium 网格的节点上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20262096/

相关文章:

接受类及其接口(interface)的 Java 类型(逆变)

java - 二叉堆 Dijkstra 算法的反例(负权重图)

java - 访问 graphQL 查询的选择集

java - Selenium WebElement xpath Java

python - Selenium 将数据解析为变量

java - 如何在 Selenium 中使用 ChromeDriver

java - 用户在 Spring 3 MVC 中的请求周期中看到 unicode 文本的表示不一致

google-chrome - 在 Chrome 中禁用闪光灯

Java Selenium 多表结构,遍历所有

java - 无法使用 Selenium Web 驱动程序上传文件