簡體   English   中英

Selenium WebDriver Firefox錯誤 - 無法連接

[英]Selenium WebDriver Firefox error - Failed to connect

我做了我的研究,發現了其他相關問題。 沒有人幫忙。

至今:

  • 擁有最新版的硒

  • 安裝舊版本的Firefox

我在Windows 7上進行了eclipse,我創建了一個.war並在ehost下在localhost:8080 / JSPprojectServlets(在W7上)進行了測試,它運行正常。 selenium打開firefox,獲取url,然后獲取源代碼。

然后我把.war文件放到tomcat7 / webapps下的我的linux(ubuntu)機器上,並嘗試用我的Windows 7機器在192.168.1.102:8080/JSPprojectServlets下訪問它,但它不起作用,它給出了以下錯誤:

HTTP Status 500 - Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows:

type Exception report

message Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows:

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(/usr/bin/firefox) on port 7055; process output follows: 

(process:32704): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
Error: no display specified

(process:32711): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
Error: no display specified

Build info: version: '2.32.0', revision: '6c40c18', time: '2013-04-09 17:23:22'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.8.0-29-generic', java.version: '1.7.0_25'
Driver info: driver.version: FirefoxDriver
    org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)
    org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:244)
    org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
    org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:190)
    org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:183)
    org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:179)
    org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
    org.blah.blah.XmlServlet.doGet(XmlServlet.java:25)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
root cause

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:

(process:32704): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
Error: no display specified

(process:32711): GLib-CRITICAL **: g_slice_set_config: assertion `sys_page_size == 0' failed
Error: no display specified

    org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:106)
    org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:244)
    org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:110)
    org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:190)
    org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:183)
    org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:179)
    org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:92)
    org.blah.blah.XmlServlet.doGet(XmlServlet.java:25)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.35 logs.

我的代碼看起來像這樣

package org.blah.blah;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;
//import org.openqa.selenium.chrome.ChromeDriver;


public class XmlServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //System.out.println("Hello from GET method.");
        PrintWriter writer = response.getWriter();
        writer.println("<h3></h3>");

        WebDriver driver = new FirefoxDriver();

        driver.get("http://google.com");

        writer.println(driver.getPageSource());

    }
}

更新:

當我使用HtmlUnitDriver時,它工作192.168.1.102:8080/JSPprojectServlets

很明顯,由於某種原因它無法打開Firefox。 我在W7 64位,並且還有instaleld FF10,但仍然沒有。

嘗試將Firefox二進制絕對路徑作為代碼中的參數,並在從win7調用時將其作為JSP的輸入提供,然后它可以解決問題。 從上面的堆棧跟蹤中可以看出firefox二進制文件在/ usr / bin / firefox中找不到,但是你試圖在win7中調用路徑不同的webdriver。

接收org.openqa.selenium.WebDriverException:在Selenium IDE中使用Webdriver播放時無法在PATH運行測試中找到firefox二進制文件

當Java客戶端無法連接到本地主機上的Selenium實例時,會發生這種情況。 如果您在Windows上運行,請確保在hosts文件中注釋“127.0.0.1 localhost”lin。 主機文件將在C:\\ Windows \\ System32 \\ drivers \\ etc文件夾中提供。

這解決了我面臨的同樣問題。 如果我們在代理服務器后面,這主要發生。

我有同樣的問題。 在任何地方我都被發現作為版本問題的根本原因而且確實如此。 這是在遷移到最新版本的Selenium Web Driver之后進行排序,即從2.32到2.39(因為所有其他組件,如Java / Web瀏覽器等已經是最新的)。 所有腳本現在都運行正常。

我也有同樣的問題但不知何故我已經解決了這個問題

  1. 更新我的JAR文件: selenium-java-2.43.0.jarselenium-java-2.48.2.jarselenium-server-standalone-2.43.1.jarselenium-server-standalone-2.48.2.jar
  2. 在lib中添加了一個新的JAR文件selenium-java-2.48.2-srcs.jar

這些變化使我的代碼在我的案例中完美無瑕

我在ChromeDriver中遇到過這樣的問題,我無法運行測試,因為我的chromedriver不支持我在計算機上安裝的谷歌瀏覽器版本。

而不是安裝舊版本的Firefox,並擁有一個較新的FirefoxDriver,通過更新兩者來確保兩者都是copacetic

我在Windows 7和apache-tomcat-6.0.37上使用Selenium部署戰爭和測試時遇到了同樣的錯誤:

org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:118)

由於在將Firefox升級到第27版(然后是29)之前測試工作正常。 我嘗試恢復到早期版本的Firefox 18.0.2( http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/18.0.2/win32/en-US/ )並且它有效。

更新你的selenium-java - * .jar文件。

當前版本的selenium-java jar是selenium-java-2.48.2.jar

所以請使用更新的jar。

如果你不想更新jar文件,那么禁用你的firefox更新

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM