当前位置: 首页 > 知识库问答 >
问题:

Selenium:UnreachableBrowserException显示在带有testNG的chromeDriver中

濮阳赞
2023-03-14

当我运行以下代码时,下面的错误显示为:org。openqa。硒。遥远的UnreachableBrowserException:无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败。

chrome浏览器尚未启动。

//基类。爪哇:

公共类基类{

//ThreadLocal will keep local copy of driver
public static ThreadLocal<RemoteWebDriver> dr = new ThreadLocal<RemoteWebDriver>();

@BeforeTest
//Parameter will get browser from testng.xml on which browser test to run
@Parameters("myBrowser")
public void beforeClass(String myBrowser) throws MalformedURLException{
    try {
        RemoteWebDriver driver = null;

        if(myBrowser.equals("chrome")){
            DesiredCapabilities capability = new DesiredCapabilities().chrome();
            capability.setBrowserName("chrome");
            capability.setPlatform(Platform.WINDOWS);
            driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
        }
        else if(myBrowser.equals("firefox")){
            DesiredCapabilities capability = new DesiredCapabilities().firefox();
            capability.setBrowserName("firefox");
            capability.setPlatform(Platform.WINDOWS);
            driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
        }

        //setting webdriver
        setWebDriver(driver);

        getDriver().manage().window().maximize();
        getDriver().manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }catch (Exception ex){
        System.out.println(ex.toString());
    }
}

public WebDriver getDriver() {
    return dr.get();
}

public void setWebDriver(RemoteWebDriver driver) {
    dr.set(driver);
}

@AfterClass
public void afterClass(){
    getDriver().quit();
    dr.set(null);

}

}

共有1个答案

钱峻
2023-03-14

在初始化RemoteWebDriver之前,必须为chrome/gecko驱动程序设置系统属性。大概,

 if(myBrowser.equals("chrome")){
        DesiredCapabilities capability = new DesiredCapabilities().chrome();
        capability.setBrowserName("chrome");
        capability.setPlatform(Platform.WINDOWS);
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver\\chromedriver.exe"); 
        driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
    }
    else if(myBrowser.equals("firefox")){
        DesiredCapabilities capability = new DesiredCapabilities().firefox();
        capability.setBrowserName("firefox");
        capability.setPlatform(Platform.WINDOWS);
        System.setProperty("webdriver.gecko.driver", "C:\\geckodriver\\geckodriver.exe"); 
        driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);
    }
 类似资料:
  • 当我开始测试时,我在chrome地址栏中看到“数据:”。我创建Maven项目与TestNG和只尝试打开谷歌索引页面 我的测试。xml 此外,我已经从maven仓库(org.testng和org.seleniumhq.selenium最后版本)添加了pom.xml依赖项 IDEA返回java。lang.NullPointerException。我不明白问题出在哪里。 痕迹 信息: ChromeDri

  • 我们有一个多模块的maven项目。 每个模块都有一对testng和powermock单元测试用例。我们正在使用jacoco进行代码覆盖率报告。但是,jacoco在分析单元测试复盖率时基于testng单元测试用例,而忽略了powermock单元测试用例。因此,总的代码覆盖率越来越低。 如何配置jacoco来同时获取testng和jacoco测试用例?

  • 问题内容: 我想以编程方式显示带有文本的活动指示器,例如“照片”应用中的活动指示器(在编辑和保存图片之后)。我怎样才能做到这一点? 问题答案: Xcode 8.2.1•Swift 3.0.2 样本项目 Xcode 9.0•Swift 4.0

  • 问题内容: 我有一个使用浮点参数的函数(通常是整数或具有一位有效数字的十进制数),我需要将输出的值输出到具有两位小数的字符串中(5-> 5.00、5.5-> 5.50等)。如何在Python中执行此操作? 问题答案: 由于这篇文章可能会在这里出现一段时间,因此我们还要指出python 3语法:

  • 问题内容: 我正在尝试使用testNG执行我的测试脚本并尝试以下代码,但是在控制台中针对运行,失败和跳过显示0。因此,我无法在脚本中验证结果。 Java: 我正在通过testng.xml文件执行上述脚本。 控制台结果: 问题答案: 您的代码块中有一个小错误。当您在注解中使用和编写方法时,我们应使用定义适当的方法 。我使用了自己的代码,并简单地将 返回类型 添加为 void ,如下所示: 当以方式执

  • 当我开始测试时,我会在chrome地址栏中看到“data:,”。我正在用TestNG创建Maven项目,并且只尝试打开google索引页面 我的testng.xml 请帮忙,谢谢!!