Firefox 与远程浏览器通信时出错。它可能已经死了。Selenium Web驱动程序

Firefox 与远程浏览器通信时出错。它可能已经死了。Selenium Web驱动程序,firefox,selenium,selenium-webdriver,Firefox,Selenium,Selenium Webdriver,这是我的错误日志: Apr 12, 2014 3:27:46 AM org.apache.http.impl.client.DefaultRequestDirector tryConnect INFO: I/O exception (java.net.SocketException) caught when connecting to the target host: Permission denied: connect Apr 12, 2014 3:27:46 AM org.apache.ht

这是我的错误日志:

Apr 12, 2014 3:27:46 AM org.apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: I/O exception (java.net.SocketException) caught when connecting to the target host: Permission denied: connect
Apr 12, 2014 3:27:46 AM org.apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: Retrying connect
Apr 12, 2014 3:27:46 AM org.apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: I/O exception (java.net.SocketException) caught when connecting to the target host: Permission denied: connect
Apr 12, 2014 3:27:46 AM org.apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: Retrying connect
Apr 12, 2014 3:27:46 AM org.apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: I/O exception (java.net.SocketException) caught when connecting to the target host: Permission denied: connect
Apr 12, 2014 3:27:46 AM org.apache.http.impl.client.DefaultRequestDirector tryConnect
INFO: Retrying connect
org.openqa.selenium.remote.UnreachableBrowserException: Error communicating with the remote browser. It may have died.
Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:18:15'
System info: host: 'prgi-PC', ip: '192.168.1.9', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_51'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:589)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:268)
    at org.openqa.selenium.remote.RemoteWebElement.findElements(RemoteWebElement.java:187)
    at org.openqa.selenium.remote.RemoteWebElement.findElementsByTagName(RemoteWebElement.java:264)
    at org.openqa.selenium.By$ByTagName.findElements(By.java:323)
    at org.openqa.selenium.remote.RemoteWebElement.findElements(RemoteWebElement.java:163)
    at com.sai.kiran.Test.main(Test.java:155)
Caused by: java.net.SocketException: Permission denied: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:83)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117)
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:178)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:131)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
    at org.openqa.selenium.remote.HttpCommandExecutor.fallBackExecute(HttpCommandExecutor.java:322)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:301)
    at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.execute(NewProfileExtensionConnection.java:165)
    at org.openqa.selenium.firefox.FirefoxDriver$LazyCommandExecutor.execute(FirefoxDriver.java:362)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:568)
    ... 6 more
代码:

FirefoxProfile profile = new FirefoxProfile();

String path="C:\\Users\\prgi\\Downloads\\listShack";
profile.setPreference("browser.download.folderList", 2);
profile.setPreference("browser.download.dir", path);

profile.setPreference("browser.download.manager.alertOnEXEOpen", false);

profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/msword,application/csv,text/csv,image/png ,image/jpeg");

profile.setPreference("browser.download.manager.showWhenStarting",
false);

profile.setPreference("browser.download.manager.focusWhenStarting",
false);
//profile.setPreference("browser.download.useDownloadDir",true);
profile.setPreference("browser.helperApps.alwaysAsk.force",
false);

profile.setPreference("browser.download.manager.alertOnEXEOpen", false);

profile.setPreference("browser.download.manager.closeWhenDone", false);

profile.setPreference("browser.download.manager.showAlertOnComplete", false);
profile.setPreference("browser.download.manager.useWindow",
false);

profile.setPreference("browser.download.manager.showWhenStarting",false);

profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting",
false);

profile.setPreference("pdfjs.disabled", true);

WebDriver driver = new FirefoxDriver(profile);
从这里我管理我的元素


注意:它连续24/7工作了两天,今天我经常遇到这个错误。

问题

我在Windows7(IEDriverServer\uWin32\u2.42.0.zip)中本地运行InternetExplorerDriver时遇到同样的问题

当我在TaskManager下检查正在运行的进程时,发现有多个
IEDriverServer.exe
进程正在运行,但没有正确清理

解决方案

运行以下命令,终止所有正在运行的
IEDriverServer.exe
进程,并解决了这个问题(对我来说)


请尝试用以下命令替换exe路径

File file = new File("IE DriverServer.exe path");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());

我遵循以下步骤解决了问题:

  • 获取firefox配置文件名

    • 在运行窗口firefox.exe-P上尝试此命令 firefox.exe-P firefox.exe-profilemanager
  • 上述命令之一将打开弹出窗口,说明默认配置文件的名称,通常为“默认”

  • 使用下面提到的代码获取firefox驱动程序

    ProfilesIni allProfiles = new ProfilesIni();
    FirefoxProfile myProfile = allProfiles.getProfile("default");
    myProfile.setAcceptUntrustedCertificates(true);
    myProfile.setAssumeUntrustedCertificateIssuer(true);
    driver = new FirefoxDriver(myProfile);
    

  • 对于我来说,使用以1开头的端口,而不是接近默认端口值5555的端口,导致我出现此错误。将节点端口从1234更改回5558解决了此问题。不确定端口如何工作,但1234似乎不稳定

    这里只有堆栈跟踪。请提供更多信息,以增加您获得答案的机会。什么代码(一小部分)再现了这个问题?系统在工作和失败之间发生了什么变化?你试过在新系统上运行这个吗?它在那里失败了吗?另外,鉴于您收到了一个权限拒绝错误,您是否检查了您的防火墙是否阻止了selenium?我在同一个系统上工作,我不认为我的防火墙阻止了selenium。你想让我展示我写的代码@VishPlease仔细检查你的防火墙是否真的有问题。随机失败通常指向这类东西。是的,代码是需要的,但是不要过火,只粘贴需要的代码。这个例外本身可能是任何东西:从驱动程序兼容性问题到网络问题。因此,堆栈跟踪在这种情况下没有帮助。如果您使用RemoteWebDriver从机器A到机器B远程运行测试,那么请尝试在机器B上本地运行测试。如果您没有远程运行测试,请尝试查看如果您使用WebDriver而不是远程驱动程序(不是硬开关),会发生什么情况。将帮助您消除网络问题和驱动程序问题您知道Firefox版本是什么吗?@fallereneaper。。。呃。。。对于我的场景,我也有同样的例外,但是使用InternetExplorer而不是Firefox。。。因此,没有Firefox,只有InternetExplorer。这似乎是已知的硒问题之一,在ubuntu上运行Firefox/chrome时,我也会遇到同样的错误。如何在ubuntu上解决这个问题?@NisrineBouGhannam-如果你想杀死ubuntu中的进程,互联网上有很多信息-例如。
    File file = new File("IE DriverServer.exe path");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
    
    ProfilesIni allProfiles = new ProfilesIni();
    FirefoxProfile myProfile = allProfiles.getProfile("default");
    myProfile.setAcceptUntrustedCertificates(true);
    myProfile.setAssumeUntrustedCertificateIssuer(true);
    driver = new FirefoxDriver(myProfile);