`
netcome
  • 浏览: 475611 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Selenium学习笔记3

阅读更多

Selenium开放源代码,比如Selenium RC的代码位于http://svn.openqa.org/svn/selenium-rc/,最新的代码位于http://svn.openqa.org/svn/selenium-rc/trunk/clients/java/src/可以通过svn co http://svn.openqa.org/svn/selenium-rc/trunk/clients/java/src/命令下载。

Selenium RC包括server和client,其中client端支持多种编程语言,包括java、python和ruby等等。client相当于一个驱动程序,我们可以调用驱动程序执行相应的页面操作。server则相当于一个代理服务器,接收client的操作请求,然后调用firefox等浏览器执行页面操作。server的详细说明见http://seleniumhq.org/documentation/tutorials/,这里列觉几个主要问题:

  1. Selenium Server需要JRE 1.5或更高版本支持。
  2. 支持交互模式:java -jar selenium-server.jar -interactive
  3. 启动之前需要设置浏览器的目录路径而不是exe目录。
  4. Java实例代码中,使用了Junit。 如下:
      import com.thoughtworks.selenium.*;
      import junit.framework.*;
      public class GoogleTest extends TestCase {
          private Selenium browser;
          public void setUp() {
              browser = new DefaultSelenium("localhost",
                  4444, "*firefox", "http://www.google.com");
              browser.start();
          }
      
          public void testGoogle() {
              browser.open("http://www.google.com/webhp?hl=en");
              browser.type("q", "hello world");
              browser.click("btnG");
              browser.waitForPageToLoad("5000");
              assertEquals("hello world - Google Search", browser.getTitle());
          }
      
          public void tearDown() {
              browser.stop();
          }
      }

      其实可以不使用Junit,如下:

      import com.thoughtworks.selenium.*;
      
      public class first {
      
      	/**
      	 * @param args
      	 */
      	public static void main(String[] args) {
      		// TODO Auto-generated method stub
      		first my = new first();
      		my.setUp();
      		my.testGoogle();
      		my.tearDown();
      	}
      
          private Selenium browser;
          public void setUp() {
              browser = new DefaultSelenium("localhost",4444, "*firefox", "http://www.google.com");
           	//browser = new DefaultSelenium("localhost",4444, "*custom D:\\Program Files\\Mozilla Firefox\\firefox.exe", "http://www.google.com");
          	 browser.start();
          }
      
          public void testGoogle() {
          	browser.setSpeed("3000");
              browser.open("http://www.baidu.com");
              browser.type("q", "hello world");
              browser.click("btnG");
              browser.waitForPageToLoad("5000");
              //assertEquals("hello world - Google Search", browser.getTitle());
          }
          public void tearDown() {
              browser.stop();
          }
      
      }

      这段代码是Client代码,连接的server是localhost:4444。

      启动server的命令是:

      java -jar selenium-server.jar [-interactive] [options]

      其中比较重要的启动参数有:
      -port :server监听的端口,缺省是4444
      -singleWindow:当client通知server执行浏览器操作时,缺省情况下,server会启动两个浏览器窗口,其中一个用于记录自动化脚本日志,另一个是实际执行窗口。如果使用-singleWindow参数,则server只会启动一个窗口,日志和实际操作上下显示,实际操作好像是在一个frame里显示,selenium建议分别显示。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics