无法使用Selenium网格

时间:2017-06-02 12:33:55

标签: java macos google-chrome selenium grid

我正在尝试使用Selenium& amp;进行自动化测试。 MAC Sierra上的Java,但是当我运行testng.xml

时,我一直收到以下错误
  

org.openqa.selenium.WebDriverException:转发新邮件时出错   session无法找到:Capabilities [{browserName = chrome,   chromeOptions = {args = [ - start-maximized, - disable-web-security],   extensions = [],prefs = {credentials_enable_service = false,   profile.password_manager_enabled = false}},version =,platform = macOS   10.12}]命令持续时间或超时:61毫秒

枢纽&节点正在同一台Mac计算机上运行。以下是启动节点的命令行:

java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://localhost:4444/grid/register 

以下是在Windows 10上运行绝对正常的示例代码:

capabilities = DesiredCapabilities.chrome();
System.setProperty("webdriver.chrome.driver", "/Users/varun/webautomation/Executables/chromedriver");
capabilities.setBrowserName("chrome");
getPlatformCapabilities(platform);
ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized");
options.addArguments("--disable-web-security");
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("credentials_enable_service", false);
prefs.put("profile.password_manager_enabled", false);
options.setExperimentalOption("prefs", prefs);
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new RemoteWebDriver(new URL(remoteAddress), capabilities);

任何人都可以帮帮我吗?我搜索了帖子,但似乎无法找到解决方案。运行集线器的终端窗口中的最后一行是:

请求创建新会话:功能[{browserName = chrome,chromeOptions = {args = [ - start-maximized, - disable-web-security],extensions = [],prefs = {credentials_enable_service = false,profile.password_manager_enabled = false}},version =,platform = macOS 10.12}]

2 个答案:

答案 0 :(得分:0)

默认情况下,selenium网格将端口4444用于集线器,将端口5555用于节点。这可能是端口转发问题。您是否允许端口4444和5555.如果它未启用,请在防火墙中将其添加到TCP / IP和UDP协议中。 Windows中默认启用这两个端口。所以你没有遇到任何问题。

答案 1 :(得分:0)

所以我想出了一个目前正在运作的非完美解决方案。我不得不删除与传递参数相关的代码。 chrome选项是问题的根源,因为这不适用于Mac OSX。我的最终代码是:

capabilities = DesiredCapabilities.chrome();
System.setProperty("webdriver.chrome.driver","/Users/varun/webautomation/Executables/chromedriver");
capabilities.setBrowserName("chrome");
driver = new RemoteWebDriver(new URL(remoteAddress), capabilities);