用過好多自動化測試工具,對于一顆擁有程序員心的測試工程師來說,選擇webdriver絕對能滿足你的要求。使用Webdriver不要求你把一門語言研究的多精通,你只要知道語法,和常用的包,常用的類,常用的方法就足夠。
說明一下,我使用的的是java。所以,在開始前,你的電腦上正確安裝了jdk,然后有個使用習慣的開發工具,如eclipse。最好再裝個maven,我的項目都是maven工程。下面我們開始:
到selenium的官方網站上下載幾個包。一個是selenium-server-standalone.jar;還有一個是selenium-java.jar。如果你選擇使用firefox(你就使用firefox吧,你會慢慢發現它的好處。)再下載個selenium-firefox-driver.jar
把它引用到你創建的maven工程中:下面是我pom.xml部分內容。
org.seleniumhq.selenium
selenium-java
2.26.0
org.seleniumhq.selenium
selenium-server-standalone
2.26.0
org.seleniumhq.selenium
selenium-firefox-driver
2.25.0
如果在 maven dependencies中存在你引的包,并且沒有奇奇怪怪的符號,那么,您就可以開始第一個webdriver自動化程序了。
我們就當你已經成功創建了需要的project并且默認你有一些selenium的相關知識。我們就用webdriver干些事吧,哈哈。
創建一個Login類。把下面代碼拷到文件中,然后運行一下。就能看到打開www.lovo.cn,跳轉到登陸頁面,然后登陸成功。
package com.test.login;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Login {
private WebDriver webDriver;
private String baseUrl;
private Logger logger = LoggerFactory.getLogger(this.getClass());
private WebElement element;
public void openBrowser() throws Exception{
webDriver = new FirefoxDriver();
webDriver.get(baseUrl);
}
public void clickLoginLink(){
try {
baseUrl = "http://www.lovo.cn/";
this.openBrowser();
element = webDriver.findElement(By.linkText("登錄"));
if(element != null){
element.click();
if(webDriver.findElement(By.id("logusername")) != null){
logger.info("正常跳轉到登陸頁");
}else{
logger.error("打開登陸頁面失敗");
}
}else{
logger.error("沒有找到登陸鏈接!!!");
}
} catch (Exception e) {
e.printStackTrace();
logger.error("發生未知錯誤!");
}
}
public void login(){
this.webDriver.findElement(By.id("logusername")).clear();
this.webDriver.findElement(By.id("logusername")).sendKeys("138****035");
this.webDriver.findElement(By.id("logpassword")).clear();
this.webDriver.findElement(By.id("logpassword")).sendKeys("123456");
this.webDriver.findElement(By.id("logimageCheck")).clear();
this.webDriver.findElement(By.id("logimageCheck")).sendKeys("5rkz");
this.webDriver.findElement(By.cssSelector("span.btntext")).click();
this.webDriver.findElement(By.cssSelector("div.text")).click();
if(this.webDriver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]* 劉建東[\\s\\S]*$")){
this.logger.info("登陸成功!");
}else{
this.logger.error("登陸失敗!");
}
}
public static void main(String[] args){
Login login = new Login();
login.clickLoginLink();
login.login();
}
}
有時候打開firefox的時候會報錯,說沒有安裝firefox之類的錯誤,這是因為你改變了firefox的默認安裝路徑。這種情況下,你可以根據FirefoxBinary類實現。
方法如下:
public WebDriver openFirefox() throws Exception{
File file = new File("你的firefox的安裝路徑+firefox.exe"); //這里注意對\進行轉義
FirefoxBinary firefoxBin = new FirefoxBinary(file);
WebDriver webDriver = new FirefoxDriver(firefoxBin,null);
return webDriver;
}
或者使用setCapabilit來設置
方法如下:
public WebDriver openFirefox() throws Exception{
DesiredCapabilities des = DesiredCapabilities.firefox();
des.setCapability("firefox_binary", "你的firefox的安裝路徑+firefox.exe");
原文轉自:http://www.anti-gravitydesign.com