Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox 45000毫秒后,Webdriver无法连接到端口7055上的主机127.0.0.1_Firefox_Selenium_Jenkins_X11_Selenium Webdriver - Fatal编程技术网

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

Firefox 45000毫秒后,Webdriver无法连接到端口7055上的主机127.0.0.1,firefox,selenium,jenkins,x11,selenium-webdriver,Firefox,Selenium,Jenkins,X11,Selenium Webdriver,我有一个运行测试的盒子。Jenkins似乎会使用ssh连接并执行正在运行的特定作业中描述的命令 这里我尝试运行SeleniumWebDriver测试,但它告诉我在启动firefox时有错误。最终的想法是完全在这个框上运行webtests,并拍摄一些错误截图 我正在使用selenium-java-2.25.jar、Firefox10和linux操作系统 有趣的是,我可以手动将ssh连接到盒子中,从盒子上的另一个用户临时复制魔法cookie(以获得X通道),执行export DISPLAY=mydi

我有一个运行测试的盒子。Jenkins似乎会使用ssh连接并执行正在运行的特定作业中描述的命令

这里我尝试运行SeleniumWebDriver测试,但它告诉我在启动firefox时有错误。最终的想法是完全在这个框上运行webtests,并拍摄一些错误截图

我正在使用selenium-java-2.25.jar、Firefox10和linux操作系统

有趣的是,我可以手动将ssh连接到盒子中,从盒子上的另一个用户临时复制魔法cookie(以获得X通道),执行
export DISPLAY=mydisplay:1.0
,然后使用ant启动selenium测试。这将带来firefox和测试

这里有很多线程似乎都有完全相同的问题,我想我已经尝试了其中的大部分。以下是我所做的:

  • 重新启动机箱,使用VNC重新登录

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

  • iptables已关闭

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

  • sshd_config将X11正向显示为true

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

然而,上述任何一项都不能解决问题

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

netstat-an | grep7055
-不打印任何内容

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

  1 127.0.0.1               localhost.localdomain localhost
  2 ::1             localhost6.localdomain6 localhost6
也许这与localhost:7055不存在有关?我不知道从这里到哪里去。但是,当我指定了
mydisplay:1.0
时,为什么错误输出会说它正在查找
display::0.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)
[testng]org.openqa.selenium.firefox.NotConnectedException:45000毫秒后无法连接到端口7055上的主机127.0.0.1。firefox控制台输出:
[testng]Xlib:服务器拒绝连接到“:0.0”
[testng]Xlib:未指定协议
[testng]
[testng]错误:无法打开显示::0.0
[testng]Xlib:服务器拒绝连接到“:0.0”
[testng]Xlib:未指定协议
[testng]
[testng]Xlib:服务器拒绝连接到“:0.0”
[testng]Xlib:未指定协议
[testng]
[testng]Xlib:服务器拒绝连接到“:0.0”
[testng]Xlib:未指定协议
[testng]
[testng]错误:无法打开显示::0.0
[testng]
[testng]位于org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:109)
[testng]位于org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:245)
[testng]位于org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:109)
[testng]位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:185)
[testng]位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:178)
[testng]位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:174)
[testng]位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:92)
[testng]位于com.test.webtest.browser.BrowserFactory.createBrowser(BrowserFactory.java:24)
[testng]位于sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
[testng]位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[testng]位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[testng]位于java.lang.reflect.Method.invoke(Method.java:601)

不知道您是否解决了此问题,但我刚刚从另一方解决了相同的问题

Selenium和Firefox似乎很难相互沟通——我怀疑Firefox在许多版本中都会发生“进化”变化,因此前后兼容并不总是得到保证,不兼容似乎总是会产生相同的错误

我的问题始于我从15楼搬到16楼。在Ubuntu上运行时,这种情况会随着其他升级而神奇地自动发生,但我相信这是关键的改变

通过从Selenium 2.24.1迁移到Selenium 2.25.0,问题得以解决

由于selenium的更改只是下载jar文件并运行它,而不是旧的jar文件,因此值得尝试一下,作为一个快速简单的疑难解答—如果没有帮助,请切换回原来的jar文件。在您的情况下,我不确定尝试哪个版本的Selenium,但我认为2.24应该与FF 10配合使用


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

获取Firefox19的最新Selenium jars(2.30)


您可以在这里下载最新的JAR(截至编写时为2.31):

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

我通过将Firefox降级到以前与selenium WebDriver配合使用的旧版本来解决这个问题。在我的例子中,我不得不降级回Firefox18,这个版本与Selenium 2.27配合使用


以下是获取旧版本firefox的链接:

更新selenium jars,下载selenium 2.31.0

该问题已由selenium guys解决

这是一个兼容性问题


干杯

在选择使用Selenium进行测试之前,您需要检查浏览器兼容性:


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

脚本的问题在于,用于脚本的环境与用于测试的环境不同
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("Контакт"));
 }
 private static void English()
 {
            var drv = Driver.Instance;
            var el = drv.FindElement(By.Id("mvc_lang_en"));
            el.Click();
 }
DISPLAY=":1"
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)
    <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>