tags:

views:

2429

answers:

3

How would you run the Selenium process (thread) from a Java process so I don't have to start Selenium by hand?

+5  A: 

The server:

import org.openqa.selenium.server.SeleniumServer;
public class SeleniumServerControl {
  private static final SeleniumServerControl instance = new SeleniumServerControl();
  public static SeleniumServerControl getInstance() {
    return instance;
  }
  private SeleniumServer server = null;
  protected SeleniumServerControl() {
  }
  public void startSeleniumServer() {
    if (server == null) {
      try {
        server = new SeleniumServer(SeleniumServer.DEFAULT_PORT);
        System.out.println(" selenium server " + server.toString());
      } catch (Exception e) {
        System.err.println("Could not create Selenium Server because of: "
            + e.getMessage());
        e.printStackTrace();
      }
    }
    try {
      server.start();
    } catch (Exception e) {
      System.err.println("Could not start Selenium Server because of: "
          + e.getMessage());
      e.printStackTrace();
    }
  }
  public void stopSeleniumServer() {
    if (server != null) {
      try {
        server.stop();
        server = null;
      } catch (Exception e) {
        System.err.println("Could not stop Selenium Server because of: "
            + e.getMessage());
        e.printStackTrace();
      }
    }
  }
}

The client:

browser = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com");
browser.start();
BraveSirFoobar
A: 

does that SeleniumServer class come with selenium RC?

+2  A: 

Also there are some additional settings you can use:

 RemoteControlConfiguration settings = new RemoteControlConfiguration();
 File f = new File("/home/user/.mozilla/firefox/default");
 settings.setFirefoxProfileTemplate(f);
 settings.setReuseBrowserSessions(true);
 settings.setSingleWindow(true);
 if (this.ServerWorks == false)
 {
  try
  {
   server = new SeleniumServer(settings);
   server.start();
   this.ServerWorks = true;
  } catch (Exception e)
  {
   e.printStackTrace();
  }
 }
Ula Karzelek