1

我正在尝试并行运行 Junit 测试,进行了具有 3 个节点的网格设置,而执行测试时出现异常

org.openqa.selenium.firefox.NotConnectedException:45000 毫秒后无法连接到端口 7055 上的主机 127.0.0.1。

我的理解是与 Firefox 和 selenium 版本无关,我认为该异常是由于 Firefox 为一个未在 45000 毫秒内释放的 webdriver 实例发出的锁定,这会引发其他 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 cannot be cast to java.lang.String

为 firefoxbinary 设置功能时抛出此异常

capablities.setCapability("firefox_binary", firefoxBinary);

否则创建 RemoteWebdriver 实例没有任何问题

请让我知道我是否正确地增加了关于端口 7055 锁定的超时,如果是这样,请帮助我解决 Firefox Binary 中的 webdriver 异常

4

2 回答 2

0

我不确定您收到的原始错误(无法连接到端口 7055 上的主机 127.0.0.1)是否是由于超时问题。我确信它与您使用的 selenium 和 firefox 版本有关。如果您还没有,请查看类似的问题和我对 SO 的回答。如果您不使用最新版本,我相信您需要升级您的 selenium 版本。

于 2014-01-21T15:27:58.530 回答
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 有一个错误,检查 这个问题

更新 !!!!!

利用 :

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);
于 2017-05-19T21:47:26.620 回答