您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium 2.0 WebDriver 使用指南
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/2/14 13:46:43 ] 推薦標(biāo)簽:Selenium WebDriver 功能測試

  請確認(rèn)你使用的WebDriver是新的當(dāng)前版本。在這篇文檔撰寫時,上述示例給出的是新的版本。在Selenium2.0發(fā)布不久WebDriver有過頻繁的更新。請?jiān)谶@個鏈接MavenDownloadPage確認(rèn)當(dāng)前的版本,相應(yīng)地修改你工程中的pon.xml。
  現(xiàn)在,你可以通過dos界面使用CD命令進(jìn)入工程所在文件夾,通過以下命令運(yùn)行Maven。
  mvncleaninstall
  運(yùn)行之后會自動下載Selenium及相關(guān)套件,并加載到你的工程中去。
  后,將你的工程導(dǎo)入到你偏好的IDE中。如果你對導(dǎo)入的過程不是很清楚,我們已經(jīng)準(zhǔn)備了操作指南。
  ImportingamavenprojectintoIntelliJIDEA.ImportingamavenprojectintoEclipse
  5.如何將自動化工程從Selenium1.0遷移到Selenium2.0
  已經(jīng)在Selenium1.0上構(gòu)建測試工程的用戶,我們?yōu)槟峁┝艘环葜笇?dǎo)如何將已有的代碼遷移到Selenium2.0。Selenium2.0的首席開發(fā)工程師SimonStewart為此撰寫了一片文章:MagratingFromSeleniumRCtoSeleniumWebDriver。
  6.Selenium-WebDriverAPI簡介
  WebDriver可以用來實(shí)現(xiàn)Web應(yīng)用程序的自動化測試,特別適合于驗(yàn)證實(shí)際結(jié)果是否符合預(yù)期結(jié)果的場景。WebDriver旨在提供比Selenium1.0更加易用、友好的API,便于用戶的探索和理解,從而使測試用例變得容易閱讀和維護(hù)。WebDriver沒有使用任何第三方測試框架,所以它可以很好與單元測試工具或者古老的main函數(shù)結(jié)合使用。本章節(jié)將介紹如何使用WebDriver的API,幫助你慢慢開始了解WebDriver。如果你還沒有新建一個Selenium工程,請先完成這個操作,在這個章節(jié)的上面有詳細(xì)的描述。
  當(dāng)你創(chuàng)建完Selenium工程后,你會發(fā)現(xiàn)WebDriver和普通的第三方庫一樣是完全獨(dú)立的,在你使用之前不需要啟動任何額外的進(jìn)程或者安裝程序,相反如果你使用Selenium-RC需要先啟動代理服務(wù)器。
  注意:當(dāng)你使用如下WebDriver時需要額外的步驟:ChromeDriver,OperaDriver,AndroidDriver,IPhoneDriver。
  現(xiàn)在你肯定躍躍欲試要寫一些代碼了。我們以一個簡單的例子來開始第一段旅程:在Google上搜索“Cheese”,并打印出搜索結(jié)果網(wǎng)頁的標(biāo)題。
packageorg.openqa.selenium.example;
importorg.openqa.selenium.By;
importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.WebElement;
importorg.openqa.selenium.firefox.FirefoxDriver;
importorg.openqa.selenium.support.ui.ExpectedCondition;
importorg.openqa.selenium.support.ui.WebDriverWait;
publicclassSelenium2Example{
publicstaticvoidmain(String[]args){
//創(chuàng)建一個FirefoxDriver實(shí)例
//這個類依賴于接口而不是接口的實(shí)現(xiàn)
WebDriverdriver=newFirefoxDriver();
//使用get方法訪問Google
driver.get("http://www.google.com");
//使用下面這個方法也能夠達(dá)到訪問Google的目的
//driver.navigate().to("http://www.google.com");
//找到html輸入框的name
WebElementelement=driver.findElement(By.name("q"));
//輸入要查找的內(nèi)容
element.sendKeys("Cheese!");
//提交表單,WebDriver會自動找到我們需要提交的元素所在的表單
element.submit();
//打印網(wǎng)頁的標(biāo)題
System.out.println("Pagetitleis:"+driver.getTitle());
//Google的搜索網(wǎng)頁會通過JS動態(tài)渲染
//等待頁面加載完畢,超時時間為10秒
(newWebDriverWait(driver,10)).until(newExpectedCondition<Boolean>(){
publicBooleanapply(WebDriverd){
returnd.getTitle().toLowerCase().startsWith("cheese!");
}
});
//控制臺上將打印如下信息:"cheese!-GoogleSearch"
System.out.println("Pagetitleis:"+driver.getTitle());
//關(guān)閉瀏覽器
driver.quit();
}
}
  在本章節(jié)的接下來篇幅,我們將學(xué)習(xí)如何使用WebDriver操作你的瀏覽器,如何使用框架和窗口來測試Web網(wǎng)站。當(dāng)然,我們將提供更加翔實(shí)的論述和舉例。
  7.Selenium-WebDriverAPI詳解
  7.1獲取Web頁面
  我們第一件要做的事是通過WebDriver取得Web頁面的控制權(quán),一般情況下使用get方法
  driver.get("http://www.google.com");
  在某些情況下,比如操作系統(tǒng)和瀏覽器的穿插組合,WebDriver有可能不會等待Web頁面加載完成,這種情況下WebDriver會返回錯誤或者直接運(yùn)行下一步操作。為了保證程序的健壯性,你需要等待頁面中某個元素加載完成后再進(jìn)行下一步操作,請參考ExplicitandImplicitWaits。
  7.2定位UI元素
  我們可以通過WebDriver實(shí)例或者WebElement類來定位UI元素。我們?yōu)槊糠N編程語言都提供了兩種方法:“FindElement”和“FindElements”。第一種方法返回的一個WebElement,找不到則拋出異常。第二個方法返回一個WebElement鏈表(List),在找不到任何DOM元素的情況下會返回空的鏈表。
  Find方法會使用類似探測器的類,類名叫做By。下面列舉By的一些常用方法:
  ByID
  當(dāng)我們定位一個UI元素,這個是有效也是好的方法。不過這個方法不是的,有的前端開發(fā)在設(shè)計(jì)UI元素時會遺漏ID或者使用動態(tài)ID,這兩種情況下都要避免使用這個方法。這時候使用獲取class名稱方法比ByID更合適。
  示例:如何使用該方法定位元素
  <divid="coolestWidgetEvah">...</div>
  WebElementelement=driver.findElement(By.id("coolestWidgetEvah"));

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd