I have done my research and found other related issues. None have helped.
so far:
have the up to date version of selenium
installed older version of firefox
I have eclipse on windows 7, I created a .war and tested in eclipse under localhost:8080/JSPprojectServlets (on W7) and it works fine. selenium opens firefox, gets url, then gets source.
I then put .war file into my linux (ubuntu) machine under tomcat7/webapps and try to visit it with my windows 7 machine under 192.168.1.102:8080/JSPprojectServlets but it does not work and it gives the following error:
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.
my code looks like this
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());
}
}
UPDATE:
When i use HtmlUnitDriver it works 192.168.1.102:8080/JSPprojectServlets
clearly it can't open firefox for some reason. I'm in W7 64bit and have instaleld FF10 and still nothing.
Try giving the Firefox binary absolute path as a parameter in your code and when invoking from win7 provide this as in input to your JSP and then it could solve the problem. From your above stack trace it says firefox binary cannot be found in /usr/bin/firefox but you are trying to invoke the webdriver in win7 where the path is different.
Receiving org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH running tests in Selenium IDE with Webdriver playback
This happens when java client fails to connect to the Selenium instance on local host. If you are running on windows make sure that "127.0.0.1 localhost" lin in hosts file is commented. Hosts file will be available in C:\Windows\System32\drivers\etc folder.
This has fixed same issue, that i faced. This mainly happens if we are behind a proxy server.
I had the same problem. Everywhere I was found root cause as version issue and really it was. This was sorted after migrating to latest version of Selenium Web Driver i.e. from 2.32 to 2.39 (As all other component like Java/Web browser etc are already up to date). All scripts are working fine now.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With