实例:用Selenium和用Webdriver构建出来的测试工程

字体 -
标签:

构建一个 Selenium 测试工程

Selenium API 则支持更多的编程语言,这里我们还是以 Java 为例。
图 1. Selenium 测试工程
清单 1. 使用 Selenium API 的脚本 - 登录 SmartCloud iNotes
package demo;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
public class SeleniumDemo {
public static void main(String[] args) throws InterruptedException {
// 创建一个 Selenium 实例
Selenium selenium = new DefaultSelenium(”localhost”, 4444, \
“*firefox”, “https://apps.na.collabserv.com/”);
// 启动 selenium session
selenium.start();
// 打开测试网页
selenium.open(”https://apps.lotuslive.com/”);
// 输入用户名,密码
selenium.type(”//input[@id=’username’]”, \
selenium.type(”//input[@id=’password’]”, “test”);
// 登录
selenium.click(”//input[@id=’submit_form’]”);
// 等待直到页面出现 Mail 链接
int count = 60;
while(count > 0){
if(selenium.isElementPresent(”//a[contains(text(),’Mail’)]”)){
break;
}else{
Thread.sleep(1000);
count–;
}
}
// 登出
selenium.click(”//a[contains(text(),’Log Out’)]”);
// 测试结束后,终止 selenium session
selenium.stop();
}
}
构建一个 WebDriver 测试工程
WebDriver API 可以通过 Python、Ruby、Java 和 C#访问,支持开发人员使用他们偏爱的编程语言来创建测试。这里我们以 Java 为例。首先需要准备好自己的 Eclipse 环境,并在 selenium 的官方网站下载 Selenium 2 的 Jar 包。
图 2. WebDriver 测试工程
清单 2. 使用 WebDriver API 的脚本 - 登录 SmartCoud iNotes
package demo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;
public class WebDriverDemo {
public static void main(String[] args) {
//创建一个 firefox driver 实例
WebDriver driver = new FirefoxDriver();
//打开测试网址
driver.get(”https://apps.na.collabserv.com/”);
//定义用户名和密码文本框
WebElement username=driver.findElement(By.id(”username”));
WebElement password=driver.findElement(By.id(”password”));
//输入用户名和密码
username.sendKeys(”[email protected]”);
password.sendKeys(”test”);
//点击 login 登录
WebElement login=driver.findElement(By.id(”submit_form”));
login.click();
//设置页面等待直到出现 Mail 链接
(new WebDriverWait(driver, 500)).until(new ExpectedCondition<WebElement>(){
public WebElement apply(WebDriver dr) {
return dr.findElement(By.linkText(”Mail”));
}
});
//登出
WebElement logout=driver.findElement(By.linkText(”Log Out”));
logout.click();
//关闭浏览器
driver.quit();
}
}
Selenium vs WebDriver
从上述用 Selenium 和 WebDriver 构建的两个测试工程来看,WebDriver 工程在构建之后不需要其他的配置我们便可以直接使用,这一点和 Selenium 是截然不同的。因为 Selenium 还需要安装并启动 Selenium Server 才能运行测试程序。
另外,我们可以看出 WebDriver 是基于面向对象的 API,它更多的是从用户角度出发。反之 Selenium 提供的是基于字典的 API,用户可以很方便的看到所以支持的方法。毋庸置疑的是,WebDriver 提供的 API 更为简洁,对用户更加的友好。但从另一个角度来看,就是用户不能很直观的看到 WebDriver 提供了哪些 API,可能需要通过官网提供的 JavaDoc的协助来找寻一些方法。

201613W2.jpg

分享博文至:

    目前没有评论

发表评论