在selenium2.0中使用selenium1.0的API

Selenium2.0中使用WeDriver API对页面进行操作,它最大的优点是不需要安装一个selenium server就可以运行,但是对页面进行操作不如selenium1.0的Selenium RC API那么方便。Selenium2.0提供了使用Selenium RC API的方法:

 1 // You may use any WebDriver implementation. Firefox is used hereas an example
 2 WebDriver driver = new FirefoxDriver();
 3  
 4 // A "base url", used by selenium to resolve relativeURLs
 5  String baseUrl ="http://www.google.com";
 6  
 7 // Create the Selenium implementation
 8 Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl);
 9  
10 // Perform actions with selenium
11 selenium.open("http://www.google.com");
12 selenium.type("name=q", "cheese");
13 selenium.click("name=btnG");
14  
15 // Get the underlying WebDriver implementation back. This willrefer to the
16 // same WebDriver instance as the "driver" variableabove.
17 WebDriver driverInstance = ((WebDriverBackedSelenium)selenium).getUnderlyingWebDriver();
18  
19     //Finally, close thebrowser. Call stop on the WebDriverBackedSelenium instance
20     //instead of callingdriver.quit(). Otherwise, the JVM will continue running after
21     //the browser has beenclosed.
22     selenium.stop();

分别使用WebDriver API和SeleniumRC API写了一个Login的脚本,很明显,后者的操作更加简单明了。

 1 //WebDriver API写的Login脚本:
 2     public void login() {
 3         driver.switchTo().defaultContent();
 4         driver.switchTo().frame("mainFrame");
 5  
 6         WebElement eUsername= waitFindElement(By.id("username"));
 7         eUsername.sendKeys([email protected]);
 8  
 9         WebElement ePassword= waitFindElement(By.id("password"));
10         ePassword.sendKeys(manager);
11  
12         WebElementeLoginButton = waitFindElement(By.id("loginButton"));
13        eLoginButton.click();
14  
15     }
1 //SeleniumRC API写的Login脚本:
2     public void login() {
3         selenium.selectFrame("relative=top");
4         selenium.selectFrame("mainFrame");
5         selenium.type("username","[email protected]");
6         selenium.type("password","manager");
7         selenium.click("loginButton");
8 }
9      

参考:selenium2.0_中文帮助文档.doc

时间: 2024-10-12 13:36:08

在selenium2.0中使用selenium1.0的API的相关文章

collection.toArray(new String[0])中new String[0]的作用

new string[0]的作用 比如:String[] result = set.toArray(new String[0]); Collection的公有方法中,toArray()是比较重要的一个. 但是使用无参数的toArray()有一个缺点,就是转换后的数组类型是Object[]. 虽然Object数组也不是不能用,但当你真的想用一个具体类型的数组,比如String[]时,问题就来了.而把Object[]给cast成 String[]还是很麻烦的,需要用到这个: String[] str

VC 6.0中添加库文件和头文件 【转】

本文转载自:http://blog.sina.com.cn/s/blog_9d3971af0102wxjq.html 加头文件包含 VC6.0中: VC6.0默认include包含路径:Tools>Options>Directories>Include files. 对于特定项目的头文件包含,在“Project Setting>C/C++ >Category:(选Preprocessor)>Additional include directories”处添加附加头文件目

不算“真正的语言”?详说Swift 2.0中的错误处理

苹果公司在今年的全球开发者大会(Worldwide Developers Conference, WWDC)上宣布推出Swift2.0,该语言的首席架构师Chris Lattner表示,Swift 2.0主要在语言基本语法.安全性和格式美观度这三方面进行了改进.除了这些新的功能特性,还有对语法的优化.修饰及美化,最后是Swift 1.x中最具影响力的错误处理机制. 这是因为你根本无法回避它.如果打算使用Swift 2.0的话,必须接受错误处理这样的机制,并且错误处理机制将改变Cocoa和Coco

Apache Storm 1.1.0 中文文档 | ApacheCN

前言  Apache Storm 是一个免费的,开源的,分布式的实时计算系统. 官方文档: http://storm.apache.org 中文文档: http://storm.apachecn.org ApacheCN 最近组织了翻译 Storm 1.1.0 中文文档 的活动,整体 翻译进度 为 96%. 感谢大家参与到该活动中来 感谢无私奉献的 贡献者,才有了这份 Storm 1.1.0 中文文档 感谢一路有你的陪伴,我们才可以做的更好,走的更快,走的更远,我们一直在努力 ... 网页地址:

小改动,大作为——C# 4.0中的微小改动

1.可选参数和命名实参 可选参数和命名实参就如同一对好基友,因为它们经常一起使用. 1.1 可选参数 可选参数重在“可选”,即在调用方法时,该参数可以明确指定实参,也可以不指定.如下代码所示,下面代码就包含3个参数,一个必备参数和两个可选参数. 1 static void TestMethod(int x,int y=10,string name="LearningHard") 2 { 3 Console.WriteLine($"x={x} y={y} name={name}

VC++6.0中OpenGL应用程序开发

1. Win32控制台方式 建立Win32 控制台程序,在头文件中加入 #include <windows.h>  #include <wingdi.h>  #include <GL/gl.h>  #include <GL/glu.h >   #include <GL/glaux.h> 2. MFC方式 (1)采用VC AppWizard向导创建空的MFC(EXE)工程框架,整个过程总共6步,值得指出的是一般情况下在向导的第1步选择创建工程的模式

(转)VC6.0中OpenGL开发环境配置

首先简单介绍一下OpenGL: OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性.       OpenGL官方网站(英文)    http://www.opengl.org 然后设置编程的一些环境,及其安装必备文件的步骤如下: 第一步:选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的.但这里我们选择VC++ 6.0作为学习OpenGL的环

Hadoop-2.2.0中文文档—— Common - CLI MiniCluster

目的 使用 CLI MiniCluster, 用户可以简单地只用一个命令就启动或关闭一个单一节点的Hadoop集群,不需要设置任何环境变量或管理配置文件. CLI MiniCluster 同时启动一个 YARN/MapReduce 和 HDFS 集群. 这对那些想要快速体验一个真实的Hadoop集群或是测试依赖明显的Hadoop函数的非Java程序 的用户很有用. Hadoop Tarball 你需要从发布页获取tar包.或者,你可以从源码中自己编译. $ mvn clean install -

EJB3.0中的session bean以及MDB解析

大型业务系统面临的主要问题就是高并发性和事务访问,客户端的数量与服务器端的分布式对象数量存在一定程度的正比关系,客户端数量越多,服务器端分布式对象也就越多,如何解决这种高并发的问题也就成了企业级架构首先要解决的问题.EJB作为一种服务器端分布式组件,为我们提供了应对策略. EJB提供了两种管理大量分布式对象的策略:实例池化和激活.下面分别对EJB组件模型中的三种模型进行一些分析. 第一种:无状态的会话Bean(Stateless session bean) Stateless session b