Webdriver无法在45000 ms后连接到端口7055上的主机127.0.0.1

我有我运行testing的地方。 jenkins似乎会在执行特定作业中描述的命令时执行命令。

在这里,我正在尝试运行我的Selenium Webdrivertesting,但它告诉我,我在启动Firefox时出现错误。 最终的想法是完全在这个盒子上运行networkingtesting,并且也截取一些错误的截图。

我使用selenium-java-2.25.jar,firefox 10,linux操作系统。

有趣的是,我可以手动ssh进入框中,暂时从盒子上的另一个用户(获得一个X隧道)复制魔术cookies,执行export DISPLAY=mydisplay:1.0 ,然后启动我的seleniumtesting使用ant。 这将带来Firefox和testing就好了。

这里有各种线程,似乎有完全相同的问题,我想我已经尝试了大部分。 这是我所做的:

  • 重新启动盒子,用VNC重新login。

  • 在运行seleniumtesting之前,在Jenkins中放置一个bash脚本。 bash脚本基本上只是做一个export DISPLAY=mydisplay:1.0 。 它也执行xclock 。 这工作正如我可以看到xclock显示在VNC中。

  • iptables已closures

  • firefox正确地位于/ usr / bin / firefox中

  • sshd_config显示X11Forwarding为true。

  • 据说降级Firefox帮助一些人,但我不希望这样做。 Webdriver无论如何都应该支持FF 10。

但是,以上都不能解决问题。

它似乎并不像本地端口上的端口7055甚至存在:

netstat -an | grep 7055 netstat -an | grep 7055 – 没有打印

这就是我的/ etc / hosts所说的:

  1 127.0.0.1 localhost.localdomain localhost 2 ::1 localhost6.localdomain6 localhost6 

也许它与localhost有关:7055不存在? 我不确定该从哪里出发。 仍然,为什么错误输出说它正在寻找display: :0.0当我指定mydisplay:1.0

最后,我收到的错误输出:

 [testng] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: [testng] Xlib: connection to ":0.0" refused by server [testng] Xlib: No protocol specified [testng] [testng] Error: cannot open display: :0.0 [testng] Xlib: connection to ":0.0" refused by server [testng] Xlib: No protocol specified [testng] [testng] Xlib: connection to ":0.0" refused by server [testng] Xlib: No protocol specified [testng] [testng] Xlib: connection to ":0.0" refused by server [testng] Xlib: No protocol specified [testng] [testng] Error: cannot open display: :0.0 [testng] [testng] at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:109) [testng] at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:245) [testng] at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:109) [testng] at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:185) [testng] at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:178) [testng] at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:174) [testng] at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92) [testng] at com.test.webtest.browser.BrowserFactory.createBrowser(BrowserFactory.java:24) [testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [testng] at java.lang.reflect.Method.invoke(Method.java:601) 

不知道你是否解决了这个问题,但我刚刚从另一边解决了同样的问题。

看来Selenium和Firefox很难相互交stream – 我怀疑Firefox会在多个版本上进化,所以往往不能保证向后兼容性,不兼容总是会产生同样的错误。

当我从FF 15移到FF 16时,我的问题就开始了。在Ubuntu上运行时,这种情况随着其他升级而神奇地发生,但是我相信这是一个关键的变化。

从Selenium 2.24.1移到Selenium 2.25.0解决了这个问题

由于selenium的变化只是下载jar文件并运行它而不是旧的,所以值得把它作为一个快速简单的故障排除工具 – 如果没有帮助,就切换回来。 在你的情况下,我不知道要尝试哪个版本的selenium,但我认为2.24应该与FF 10一起工作。

我在过去发现的另一个问题是,Firefox不能在Ubuntu上以root身份运行。 如果Selenium作为服务运行,或者可能从bash脚本或cron作业启动,则会发生这种情况。 这可以解释为什么它为你运行,但不是为jenkins。

我有一个类似的问题。 也许这个答案也会帮助你。

看起来你有两个不同的错误:

  1. Unable to connect to host 127.0.0.1 on port 7055
  2. Error: no display specified

Unable to connect错误的原因是Selenium Server的版本不知道如何使用较新版本的Firefox。 您需要下载支持较新版本Firefox的Selenium Server的较新版本。

Error: no display specified原因Error: no display specified错误是Firefox正在启动,但在远程主机上没有运行X服务器(GUI)。 您可以使用X11转发在远程主机上运行Firefox,但将其显示在本地主机上。 在Mac OS X上,您需要下载XQuartz才能使用X11转发。

在select使用Selenium进行testing之前,您需要检查浏览器兼容性:

https://github.com/SeleniumHQ/selenium/blob/master/java/CHANGELOG

这可能有助于回答上述问题。

获取FireFox 19的最新Seleniumjar(2.30)

你可以在这里下载最新的jar子(2.31): https : //code.google.com/p/selenium/downloads/list

我通过将我的Firefox降级到以前在Selenium-WebDriver上运行良好的旧版本来解决了这个问题。 就我而言,我不得不降级到Firefox 18,这个版本和Selenium 2.27一起工作

这里是链接到旧版本的Firefox: https : //ftp.mozilla.org/pub/mozilla.org/firefox/releases/

这个问题困扰了我很长一段时间,我看到一个Firefox的工作解决scheme是使用升级的Firefox驱动程序

  • 如果你的Firefox升级正在自动发生 ,你可能偶尔会遇到这个问题。 看起来像Firefox的发展速度太快,或者他们不关心向后兼容性。

  • 每次我在旧脚本中看到这个问题时,我都会检查Firefox的版本是否已经改变 – 大部分时间都是这样。

  • 然后我去maven回购selenium火狐驱动程序回购 – http://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver并下载最新版本。;

  • 或更新我的pom.xml(如果使用maven)与新版本的Firefox驱动程序现在它的 – 2.40.0

  • 有没有简单的方法来避免这个问题,除非你真的明确阻止从Firefox的自动更新(您可以在首选项 – 在Mac上) – 高级 – 更新 – select“检查更新,但让我select是否安装它们” )

  • 如果脚本在自动模式下运行,则可能需要禁用更新。 但是这可能会造成其他问题。 由于大多数人/用户可能会默认启用Firefox更新。 所以你的应用程序并没有在任何更新的版本上进行testing。

更新seleniumjar,下载selenium2.31.0

selenium问题已经解决了这个问题

这是一个兼容性问题。

干杯

我有Firefox 47selenium2.53 ,我得到了同样的错误。 我的解决scheme是改变Firefox 47到Firefox 46 ,问题解决了。

脚本的问题是脚本使用的环境与用于testing的环境不同,因此在其中设置环境variables对testing没有任何作用。

要正确设置variables,你需要在Jenkins中设置它。 转至pipe理jenkins>pipe理节点>主站>configuration 。 检查环境variablescheckbox,然后在名称框中inputDISPLAY,并将值设置为:1.0。

此外,您需要设置权限,请尝试在terminal中使用xhost +禁用您的xhost访问控制。

我也面临同样的问题。 每当我们或networking驱动程序打开FF浏览器将检查更新(如果有的话)。 在这种情况下,我会尝试在执行期间更新,然后即使正确更新,您也会收到错误,因为您没有正确更新Selenium版本。

导航到“ http://docs.seleniumhq.org/download/ ”并下载最新版本。 现在去检查一下,问题就解决了。 🙂

我得到了同样的错误; 我已经使用了selenium-java版本2.25.0和Firefox vresion 18.0.2; 我已经将selenium-java的版本更改为2.30.0,现在可以工作。

为了解决这个问题,请使用http://docs.seleniumhq.org/download/上提供的新jar文件。; 分别为Java,C#,PHP等… Firefox 27.0.1需要2.39.0的驱动程序版本。

只需在Jenkins中安装Xvnc插件。 这个问题应该解决。

我得到了同样的错误“selenium_Unable连接到端口7055上的主机127.0.0.1”解决scheme:我已经使用Firefox 43.0.1的selenium – java-2.48.2,现在它的工作。

我也有同样的问题,但问题解决后,将Firefox的版本降为35.0.1,我的selenium版本是2.43

我有完全相同的问题运行docker,但我发现在你提到的错误之前的日志解决scheme。

 selenium_1 | 2016-11-11 11:19:34,498 DEBG 'xvfb' stderr output: selenium_1 | (EE) selenium_1 | Fatal server error: selenium_1 | (EE) Server is already active for display 99 selenium_1 | If this server is no longer running, remove /tmp/.X99-lock selenium_1 | and start again. selenium_1 | (EE) 

我已经听从了build议,问题已经被整理出来了。

当我使用IWebDriver的静态属性并从多个testing方法调用它时,这就是它的行为。

 public class LanguageMenu { private static IWebDriver drv; static LanguageMenu() { drv = Driver.Instance; } ... public static void English() { drv.FindElement(By.Id("mvc_lang_en")); el.Click(); } public static void Rusian() { ... } ... } 

喜欢

  [TestMethod] public void Language_SwitchTo_English() { LanguageMenu.English(); Assert.IsTrue(ContactPage.IsAt("Contact")); } [TestMethod] public void Language_SwitchTo_Rusian() { LanguageMenu.English(); Assert.IsTrue(ContactPage.IsAt("Контакт")); } 

为每个调用testing方法创buildDriver的新实例

  private static void English() { var drv = Driver.Instance; var el = drv.FindElement(By.Id("mvc_lang_en")); el.Click(); } 

如果我们的selenium脚本没有执行,请更新seleniumjar。 目前我正在使用selenium-java-2.43.0-srcs

现在它工作正常

它发生在ff的不同版本上。 我使用的是最新的ff版本39,使用了selenium-server-standalone-2.41.0.jar和selenium-java-2.41.0.zip,它显示了同样的错误。

获取最新的服务器和客户端jar文件在这里为了兼容性我分别使用服务器和客户端版本2.47.0和2.47.1。 和轰隆! 有效。

这是因为旧版本发生的。 只需将浏览器更新到最新版本,并将selenium webdriver软件包更新到最新版本。

重新启动terminal。 terminal是没有别的。 一切都会在那之后正常工作

添加到知识库。 我们对竹子有同样的问题。 这个问题是通过使用竹子的环境属性来解决的。

 DISPLAY=":1" 

将该值作为系统属性添加到pom.xml中,或者命令行不起作用。

在Windows上:检查你的Firefox的“位”。 火狐43.0.1 64位不适用于Selenium 2.50.0。 使用Firefox 43.0.1 32bit …

我也被困在这个错误三天,终于弄清楚了。你可以查看我在这里给出的答案。这是浏览器和selenium服务器的兼容性问题。 我希望这有帮助。你可以从这个链接检查浏览器的兼容性

我今天也有同样的问题。 要解决我降级的Firefox 51到47,它的工作。

注意:我在一个虚拟盒子中使用Linux Ubuntu Mate,主机是另一个Ubuntu Mate。 所有的操作系​​统是64位和Firefox也。

安装的Firefox安装程序18.0.exe它适用于我

我有同样的问题与Firefox 38。

使用以下版本依赖关系后,我可以解决问题。

  <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>2.53.0</version> </dependency> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-firefox-driver</artifactId> <version>2.53.0</version> </dependency> 

scheme –

1)升级你的Selenium服务器,即seleniumjar“selenium-server-standalone-2.xx.x.JAR”到“selenium-server-standalone-2.45.0.JAR”

2)升级你的Selenium客户端驱动程序,即selenium库文件夹“selenium-java-2.xx.x”到“selenium-java-2.45.0”

3)检查并安装兼容的Firefox版本

请参阅 – 下载更新的selenium库和jar版本2.45.0

这将解决你的问题..干杯!