天天看點

WebDriver 測試開發(一)

   到selenium的官方網站上下載下傳幾個包。一個是selenium-server-standalone.jar;還有一個是selenium- java.jar。如果你選擇使用firefox(你就使用firefox吧,你會慢慢發現它的好處。)再下載下傳個selenium-firefox- driver.jar

  把它引用到你建立的maven工程中:下面是我pom.xml部分内容。

<dependency>

     <groupid>org.seleniumhq.selenium</groupid>

     <artifactid>selenium-java</artifactid>

     <version>2.26.0</version>

 </dependency>

 <dependency>

     <artifactid>selenium-server-standalone</artifactid>

     <artifactid>selenium-firefox-driver</artifactid>

     <version>2.25.0</version>

  如果在 maven dependencies中存在你引的包,并且沒有奇奇怪怪的符号,那麼,您就可以開始第一個webdriver自動化程式了。

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 {

   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來設定

 desiredcapabilities des = desiredcapabilities.firefox();

 des.setcapability("firefox_binary", "你的firefox的安裝路徑+firefox.exe");

 webdirver webdriver = new firefoxdriver(des);

  總結;

  firefoxdriver類有7個構造方法,意味着可以用7中方法打開firefox浏覽器(其實比7種多),

firefoxdriver()  

firefoxdriver(capabilities desiredcapabilities)  

firefoxdriver(capabilities desiredcapabilities, capabilities requiredcapabilities)  

firefoxdriver(firefoxbinary binary, firefoxprofile profile)  

firefoxdriver(firefoxbinary binary, firefoxprofile profile, capabilities capabilities)  

firefoxdriver(firefoxbinary binary, firefoxprofile profile, capabilities desiredcapabilities, capabilities requiredcapabilities)  

firefoxdriver(firefoxprofile profile) 

====================================分割線================================

最新内容請見作者的github頁:http://qaseven.github.io/

繼續閱讀