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


138

我有运行测试的框。似乎Jenkins将ssh并执行正在运行的特定作业中描述的命令。

在这里,我正在尝试运行Selenium Webdriver测试,但是它告诉我启动firefox时出错。最终的想法是完全在此框中运行Webtest,并拍摄一些错误屏幕截图。

我正在使用selenium-java-2.25.jar,firefox 10,Linux OS。

有趣的是,我可以手动插入盒中,暂时将另一个用户的魔术cookie复制到盒中(以获得X隧道),执行export DISPLAY=mydisplay:1.0,然后使用ant启动我的硒测试。这将带来Firefox和测试就好了。

这里有各种线程似乎都存在完全相同的问题,我想我已经尝试了其中的大多数。这是我所做的:

  • 重新启动该框,使用VNC重新登录。

  • 在进行硒测试之前,在Jenkins中放置了一个bash脚本以使其运行。bash脚本基本上只是执行一个export DISPLAY=mydisplay:1.0。它还执行xclock。这可以正常工作,因为我可以看到VNC中显示了xclock。

  • iptables已关闭

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

  • sshd_config显示X11Forwarding为true。

  • 据说降级的Firefox帮助了一些人,但我不希望这样做。Webdriver应该仍然支持FF 10。

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

似乎本地主机上的端口7055甚至不存在:

netstat -an | grep 7055 -没有印

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

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

也许与本地主机: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)

我在硒2.31.0下重现了这个问题
Dima Star

我在Selenium 2.47.1中遇到此问题,但没有看到Firefox驱动程序服务器在端口XXXX上启动的消息。取而代之的是,我得到了一个空白窗口,该窗口打开了,并且无法控制浏览器,这是因为未打开该端口来监听测试中的有线协议命令。
djangofan 2015年

似乎Selenium服务器2.47.1和Firefox 40的组合是可以的,但对我来说,不能与Firefox 41一起使用。
Rostislav Matl 2015年

如果您的包装盒中没有GUI,并且正在使用firefox在包装盒中运行测试,则会收到此错误。我建议您在内存显示驱动程序中尝试使用Xvfb。或者这也可能是Firefox版本和硒版本兼容性的问题。
Prasanta Biswas,

Answers:


91

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

Selenium和Firefox似乎很难互相交谈-我怀疑Firefox在多个版本上的“演变”变化,因此不能始终保证向前和向后的兼容性,并且不兼容似乎总是会产生相同的错误。

当我从FF 15迁移到FF 16时,我的问题就开始了。在Ubuntu上运行时,这会自动神奇地发生,同时还会进行其他升级,但是我相信这是关键的变化。

通过从Selenium 2.24.1迁移到Selenium 2.25.0解决了该问题

由于硒的更改仅是下载jar文件并运行它而不是原来的jar文件,因此值得一试作为快速简便的疑难解答程序-如果它无济于事,只需切换回去。在您的情况下,我不确定尝试使用哪个版本的Selenium,但我认为2.24应该与FF 10一起使用。

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


2
我在Ubuntu中使用FF 19.0和selenium-server-standalone-2.29.0.jar。当我在Jenkins中运行硒测试时,出现了相同的错误:org.openqa.selenium.firefox.NotConnectedException:在45000毫秒后无法连接到端口7055上的主机127.0.0.1。Firefox控制台输出:[testng]错误:未指定显示[testng]错误:未指定显示
Ripon Al Wasim

@RiponAlWasim解决这个问题有运气吗?我正在运行2.31.0,并且遇到相同的问题。
Petr Peller

@Petr Peller:您的FF是什么版本?
Ripon Al Wasim

1
这似乎是一个持续的问题。我在Selenium Webdriver 2.47和Firefox 44中遇到此错误。将Selenium Webdriver更新到2.53修复了它。
B 2016年

1
TL;博士-升级硒(这里.jar文件- selenium-release.storage.googleapis.com/index.html
rinogo

14

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

看来您遇到了两个不同的错误:

  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错误的原因是,正在启动Firefox,但远程主机上没有运行X服务器(GUI)。您可以使用X11转发在远程主机上运行Firefox,但将其显示在本地主机上。在Mac OS X上,您需要下载XQuartz才能使用X11转发。





5

这个问题困扰了我很长时间,在Firefox的情况下,我已经看到一种可行的解决方案是使用升级的firefox驱动程序

  • 如果您的firefox升级是自动进行的,那么您可能会偶尔遇到此问题。看起来Firefox的家伙发展太快了,或者他们不在乎向后兼容性。

  • 每次我在旧脚本上看到此问题时,我都会检查firefox版本是否已更改-在大多数情况下都是如此。

  • 然后,我去maven repo获取selenium firefox驱动程序仓库-http: //mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver并下载最新版本。

  • 或使用新版本的firefox驱动程序立即更新我的pom.xml(如果使用了maven)-2.40.0

  • 除非您真正明确地阻止了来自firefox的自动更新,否则没有简单的方法可以避免此问题(您可以在首选项中(在Mac上)执行此操作-高级-更新-选择“检查更新,但让我选择是否安装更新” )

  • 如果您的脚本以自动模式运行,则可能需要禁用更新。但是,这可能会导致其他问题。由于大多数人/用户可能默认都启用了Firefox更新。因此,您的应用程序并未真正在任何更高版本上进行测试。


5

我有Firefox 47Selenium 2.53,但遇到了同样的错误。我的解决方案是将Firefox 47更改为Firefox 46,此问题已解决。


4

更新硒罐,下载硒2.31.0

硒专家已经解决了这个问题

这是一个兼容性问题。

干杯


3

脚本的问题在于,脚本所使用的环境与测试所用的环境不同,因此在此处设置环境变量对测试没有任何作用。

要正确设置变量,您需要在Jenkins中进行设置。转到管理詹金斯>管理节点>主>配置。选中环境变量复选框,然后在名称框中输入DISPLAY,并将值设置为:1.0。

此外,您需要设置权限,尝试xhost +在终端中禁用xhost访问控制。


1
那个“ xhost +”解决了我的问题,那就是用sudo运行webdriver并没有打开浏览器-现在可以了。
尼克·帕金斯

2

我也面临同样的问题。每当我们或webdriver打开时,FF浏览器都会检查是否有更新。在这种情况下,我将尝试在执行期间进行更新,即使您没有正确更新Selenium版本,即使错误已正确更新,您也会收到错误消息。

导航到“ http://docs.seleniumhq.org/download/ ”并下载最新版本。现在去检查,确实可以解决问题。:)


1

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



1

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


1

我遇到了同样的错误“ selenium_Unable无法在端口7055上连接到主机127.0.0.1”解决方案:我已经将selenium-java-2.48.2与Firefox 43.0.1版一起使用,现在可以正常使用了。


1

我也遇到了同样的问题,但是将firefox版本降级为35.0.1并且我的硒版本为2.43后,问题已解决


1

我在运行docker时遇到了完全相同的问题,但是在日志中找到了您提到的错误之前的解决方案。

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)

我遵循了建议,问题已经解决。


0

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

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("Контакт"));
 }

为每个调用测试方法创建新的Driver实例

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

0

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

现在一切正常


0

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

为了获得兼容性,请在此处获取最新的服务器和客户端jar文件,我分别使用服务器和客户端版本2.47.0和2.47.1。和繁荣!有效。


0

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



0

添加到知识库。我们在Bamboo上也遇到了同样的问题。通过使用“竹子的环境特性”解决了该问题。

DISPLAY=":1"

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


0

在Windows上:还要检查Firefox的“位”。Firefox 43.0.1 64位不适用于Selenium 2.50.0。与Firefox 43.0.1 32bit兼容...


0

我也被这个错误困住了三天,终于解决了。您可以在这里查看我给出的答案。这是浏览器和硒服务器的兼容性问题。希望对您有所帮助。您可以通过此链接检查浏览器的兼容性


0

我今天有同样的问题。为了修复,我将firefox版本51降级为47,并且可以正常工作。

注意:我在Virtual Box中使用Linux Ubuntu Mate,主机是另一个Ubuntu Mate。所有的操作系​​统都是64位,firefox也是。



0

我在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> 

0

我认为这可能是显示问题。如果框中没有GUI,则从Selenium Webdriver启动firefox会出现此错误。

要解决此问题,请首先yum install Xvfb -y在框中安装Xvfb [ ](虚拟显示驱动程序)。然后使用来从jenkins运行测试xvfv-run -a -d <your test execution command>。这将在虚拟显示缓冲区中启动浏览器。它还能够使用Selenium Webdriver获取屏幕截图。


-1

解决方案-

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

2)升级您的Selenium Client Driver,即selenium libs文件夹“ selenium-java-2.xx.x”到“ selenium-java-2.45.0”

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

参考- 下载更新的硒库和jar,即版本2.45.0

这将解决您的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.