Firefox 45000毫秒后,Webdriver无法连接到端口7055上的主机127.0.0.1
我有一个运行测试的盒子。Jenkins似乎会使用ssh连接并执行正在运行的特定作业中描述的命令 这里我尝试运行SeleniumWebDriver测试,但它告诉我在启动firefox时有错误。最终的想法是完全在这个框上运行webtests,并拍摄一些错误截图 我正在使用selenium-java-2.25.jar、Firefox10和linux操作系统 有趣的是,我可以手动将ssh连接到盒子中,从盒子上的另一个用户临时复制魔法cookie(以获得X通道),执行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
export DISPLAY=mydisplay:1.0
,然后使用ant启动selenium测试。这将带来firefox和测试
这里有很多线程似乎都有完全相同的问题,我想我已经尝试了其中的大部分。以下是我所做的:
- 重新启动机箱,使用VNC重新登录
- 在Jenkins中放置了一个bash脚本,以便在运行selenium测试之前运行。bash脚本基本上只执行一个
。它还执行export DISPLAY=mydisplay:1.0
。这是因为我可以在VNC中看到xclock的显示xclock
- iptables已关闭
- firefox正确位于/usr/bin/firefox中
- sshd_config将X11正向显示为true
- 据说firefox降级帮助了一些人,但我不想这样做。Webdriver无论如何都应该支持FF 10
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>