【问题标题】:Running Selenium from a Java process从 Java 进程运行 Selenium
【发布时间】:2010-09-24 04:21:19
【问题描述】:

如何从 Java 进程运行 Selenium 进程(线程),这样我就不必手动启动 Selenium?

【问题讨论】:

    标签: selenium java


    【解决方案1】:

    服务器:

    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();
          }
        }
      }
    }
    

    客户:

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

    【讨论】:

      【解决方案2】:

      您还可以使用一些其他设置:

          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();
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2014-09-05
        • 2021-11-06
        • 1970-01-01
        • 1970-01-01
        • 2013-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多