DesiredCapabilities'Chrome'>与'Selenium Grid'不兼容

时间:2017-02-02 16:44:44

标签: selenium selenium-webdriver webdriver selenium-grid

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

  1. 我正确设置了集线器和节点
  2. 但是,当尝试将Chrome浏览器指向其中一个节点时,它无效。
  3. 当前代码:

            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:无法创建新的远程会话。 desired capabilities = Capabilities [{browserName = chrome,version = 55.0.2883.87 m,platform = WINDOWS}],required capabilities = Capabilities [{}]

    enter image description here

1 个答案:

答案 0 :(得分:0)

一些事情:

  • 在节点方面,请确保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(新网址(" http://localhost:4444/wd/hub"),功能);

一旦你处理了这些项目,你的问题就应该得到解决。