我试图在parllel中运行Junit测试,用3个节点进行网格设置,同时执行测试得到异常
org.openqa.selenium.firefox.NotConnectedException:45000 ms后无法在端口7055上连接到主机127.0.0.1。
我的理解是与Firefox和selenium版本无关,我认为异常是由于firefox为一个webdriver实例发出的锁定,该实例在45000 ms内未发布,这会导致其他webdriver实例尝试超时异常同时在端口7055上连接(由于系统运行缓慢而导致)
所以我相信在这种情况下使用以下代码增加超时
DesiredCapabilities capablities = new DesiredCapabilities();
FirefoxBinary firefoxBinary = new FirefoxBinary();
firefoxBinary.setTimeout(120000);
FirefoxProfile profile = new FirefoxProfile();
profile.setAcceptUntrustedCertificates(true);
profile.setAssumeUntrustedCertificateIssuer(false);
capablities = DesiredCapabilities.firefox();
capablities.setCapability("firefox_binary", firefoxBinary);
capablities.setCapability("firefox_profile", profile);
driver = new RemoteWebDriver(new URL("http://" + parameters.getRemoteUrl() + ":4444/wd/hub"), capablities);
但又出现异常 WedDriverException:java.util.HashMap无法强制转换为java.lang.String
设置firefoxbinary
的功能时抛出此异常capablities.setCapability("firefox_binary", firefoxBinary);
否则创建RemoteWebdriver实例时没有任何问题
请告诉我,如果我正确地增加关于端口7055锁定的超时,如果这样帮助我解决Firefox Binary中的webdriver异常
答案 0 :(得分:0)
我不确定您收到的原始错误(无法连接到端口7055上的主机127.0.0.1)是否是由于超时问题。我确信它与您使用的selenium和firefox版本有关。如果您还没有,请查看similar question和我的答案。我相信如果你没有使用最新版本,你需要升级你的硒版本。
答案 1 :(得分:0)
我有同样的问题
此代码适用于我的本地PC。
FirefoxProfile fp = new FireFoxProfile();
fp.setPreference("Firefox43", "43.0.1");
File pathBinary = new
File("C:\\PathToFirefox\\firefox.exe");
FirefoxBinary firefoxBinary = new FirefoxBinary(pathBinary);
WebDriver driver = new FirefoxDriver(firefoxBinary, fp);
但是这段代码没有......
FirefoxProfile fp = new FirefoxProfile();
fp.setPreference("Firefox43", "43.0.1");
File pathBinary = new
File("C:\\PathToFirefox\\firefox.exe");
FirefoxBinary firefoxBinary = new FirefoxBinary(pathBinary);
capabilities.setCapability(FirefoxDriver.PROFILE, fp);
capabilities.setCapability(FirefoxDriver.BINARY,firefoxBinary);
WebDriver driver = new RemoteWebDriver(new URL(hubUrl), capabilities);
似乎RemoteWebDriver存在错误,请检查 this question
更新!!!!!
使用:
capabilities.setCapability(FirefoxDriver.BINARY, new
File("C:\\PathToFirefox\\firefox.exe"));
而不是......
File pathBinary = new
File("C:\\PathToFirefox\\firefox.exe");
FirefoxBinary firefoxBinary = new FirefoxBinary(pathBinary);
capabilities.setCapability(FirefoxDriver.BINARY,firefoxBinary);