【问题标题】:DesiredCapabilities 'Chrome' > doesn't work with 'Selenium Grid'DesiredCapabilities 'Chrome' > 不适用于“Selenium Grid”
【发布时间】:2017-06-19 20:24:27
【问题描述】:

DesiredCapabilities 'Chrome' > 不适用于“Selenium Grid”。

  1. 我正确设置了集线器和节点
  2. 但是,当尝试将 Chrome 浏览器指向其中一个节点时,它不起作用。

当前代码:

        case "chrome":
            if (null == webdriver) {
                System.setProperty("webdriver.chrome.driver", Constant.CHROME_DRIVER_DIRECTORY);
                DesiredCapabilities capability = DesiredCapabilities.chrome();
                capability.setBrowserName("chrome");
                capability.setVersion("55.0.2883.87 m");
                capability.setPlatform(Platform.WINDOWS);
                webdriver = new RemoteWebDriver(new URL("http://172.16.1.48:5555/wd/hub"),capability);

            }
            break;

例外: org.openqa.selenium.SessionNotCreatedException:无法创建新的远程会话。所需功能 = 功能 [{browserName=chrome, version=55.0.2883.87 m, platform=WINDOWS}],所需功能 = 功能 [{}]

【问题讨论】:

    标签: selenium selenium-webdriver webdriver selenium-grid


    【解决方案1】:

    几件事:

    • 在节点端,请确保 chromedriver(用于 chrome 浏览器)、geckodriver(用于 Firefox 浏览器)和 IEDriverServer(用于 IE)在 PATH 变量中都可用,只需打开命令提示符即可调用输入他们的名字。
    • 当您执行DesiredCapabilities capability = DesiredCapabilities.chrome(); 时,它会自动适当地设置浏览器名称。所以你不需要通过capability.setBrowserName("chrome");重新设置它(所以你可以把它关掉)。
    • 除非并且直到您通过 nodeConfig json 文件在您的节点级别明确设置浏览器版本,否则请删除 capability.setVersion("55.0.2883.87 m");,因为这会导致您的测试要求一个可以支持 chrome 55 版本的节点,但如果您不'不在您的节点上指定相同的版本,您的网格将拒绝您的新会话请求,说明它找不到所需的所需功能。
    • 从您的屏幕截图来看,您的集线器似乎在 localhost 上运行,监听端口 4444,但您的代码显示好像您正在尝试直接连接到节点。所以请将webdriver = new RemoteWebDriver(new URL("http://172.16.1.48:5555/wd/hub"),capability);改为`webdriver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"),capability);

    处理完这些项目后,您的问题应该会得到解决。

    【讨论】:

      猜你喜欢
      • 2019-07-25
      • 2023-01-14
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多