【问题标题】:Unable to launch chrome, ie on node using Selenium grid无法启动 chrome,即在使用 Selenium 网格的节点上
【发布时间】:2013-12-14 06:04:57
【问题描述】:

我的集线器和节点正在运行,我正在尝试在节点上为 chrome 浏览器运行测试,但它失败并出现错误:The path to the driver executable must be set by the webdriver.chrome.driver system property;

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

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 selenium selenium-webdriver selenium-grid


    【解决方案1】:

    一切都在于如何启动节点。所以首先,照常做:

    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,他在 SO 上回答了关于 Internet Explorer 的类似问题 - 请参阅 here

    【讨论】:

      【解决方案2】:

      尝试了各种组合,最后发现需要在运行时设置属性。

      启动节点使用:这将适用于 firefox

      java -jar sel2.40.jar -role node -hub http://locahost:4443/grid/register -port 5556

      要为 IE 启动节点,我们需要在启动节点时指定 webdriver.ie.driver 系统属性:

      java -Dwebdriver.ie.driver="D:\IEDriverServer.exe" -jar sel2.40.jar -role node -hub http://locahost:4443/grid/register -port 5556

      【讨论】:

        猜你喜欢
        • 2017-11-03
        • 1970-01-01
        • 1970-01-01
        • 2021-09-08
        • 1970-01-01
        • 2016-12-02
        • 2017-10-11
        • 1970-01-01
        • 2019-02-15
        相关资源
        最近更新 更多