




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、webdriver有用指南java版本名目如下啟動掃瞄器場景在用法webdriver進(jìn)行測試時(shí)啟動掃瞄器無疑是必需的前置工作。代碼 import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class StartBrowser public static void main(String args) WebDriver dr = new ChromeDriver(); 關(guān)閉掃瞄器場景在腳本運(yùn)行完畢或者測試代碼結(jié)束的時(shí)候關(guān)閉掃瞄器是格外自然的事情,就像在吃完飯后就把餐桌
2、整理潔凈一樣。關(guān)閉掃瞄器有兩種方式:close方法quit方法close方法關(guān)閉當(dāng)前的掃瞄器窗口,quit方法不僅關(guān)閉窗口,還會徹底的退出webdriver,釋放與driver server之間的連接。所以簡潔來說quit是更加徹底的close,quit會更好的釋放資源,適合強(qiáng)迫癥和完善主義者。代碼 import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class CloseBrowser public static void main(String args)
3、WebDriver dr = new ChromeDriver(); System.out.println(browser will be closed); dr.quit(); System.out.println(browser is closed); 掃瞄器最大化場景當(dāng)我們在測試中用法一些基于圖像和坐標(biāo)的掛念測試工具時(shí),我們就會需要使掃瞄器在每次測試時(shí)保存最大化,以便在同一辨別率下進(jìn)行圖像比對和坐標(biāo)點(diǎn)選。舉例來說,假如在webdriver測試中用法了sikuli來對flash插件進(jìn)行操作的話,把掃瞄器最大化無疑是一個(gè)比較簡潔的保證辨別率統(tǒng)一的解決方案。代碼 import org.open
4、qa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class Maximize public static void main(String args) throws InterruptedException WebDriver dr = new ChromeDriver(); Thread.sleep(2000); System.out.println(maximize browser); dr.manage().window().maximize(); Thread.sleep(200
5、0); System.out.println(browser will be close); dr.quit(); 設(shè)置掃瞄器大小場景設(shè)置掃瞄器窗口的大小有下面兩個(gè)比較常見的用途:在統(tǒng)一的掃瞄器大小下運(yùn)行用例,可以比較簡潔的跟一些基于圖像比對的工具進(jìn)行結(jié)合,提升測試的機(jī)敏性及普遍適用性。比如可以跟sikuli結(jié)合,用法sikuli操作flash;在不同的掃瞄器大小下訪問測試站點(diǎn),對測試頁面截圖并保存,然后觀看或用法圖像比對工具對被測頁面的前端樣式進(jìn)行評測。比如可以將掃瞄器設(shè)置成移動端大小(320 x480),然后訪問移動站點(diǎn),對其樣式進(jìn)行評估;代碼將掃瞄器調(diào)整成移動端大小,然后訪問移動站點(diǎn),對
6、移動站點(diǎn)的樣式進(jìn)行評估。 import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class CloseBrowser public static void main(String args) WebDriver dr = new ChromeDriver();dr.manager().Window().setSize(newDimension(600,800) System.out.println(browser will be closed); dr.quit(
7、); System.out.println(browser is closed); 爭辯webdriver供應(yīng)了很多調(diào)整掃瞄器窗口的接口,比如move_to(移動窗口),position(設(shè)置或獵取掃瞄器的位置)。在一般狀況下這些功能并不常用。訪問鏈接情景web UI測試?yán)镒詈啙嵰彩亲罨镜氖虑榫褪窃L問1個(gè)鏈接了。webdriver的api里有2種訪問url的方式,分別是get和navigate.to方法。一般狀況下建議用法get,由于其字母比較少,不太簡潔出錯(cuò)。代碼 import org.openqa.selenium.WebDriver; import org.openqa.seleniu
8、m.chrome.ChromeDriver; public class Get public static void main(String args) throws InterruptedException WebDriver dr = new ChromeDriver(); Thread.sleep(2000); String url = ; System.out.printf(now accesss %s n, url); dr.get(url); Thread.sleep(2000); System.out.println(browser will be close); dr.quit
9、(); 爭辯navigate方法實(shí)際上會產(chǎn)生1個(gè)Navigator對象,其封裝了與導(dǎo)航相關(guān)的一些方法,比如前進(jìn)后退等。打印當(dāng)前頁面的title及url情景測試中,訪問1個(gè)頁面然后推斷其title是否符合預(yù)期是很常見的1個(gè)用例,所謂用例不夠,title來湊就是這個(gè)道理。更具體一點(diǎn),假設(shè)1個(gè)頁面的title應(yīng)當(dāng)是hello world, 那么可以寫這樣的一個(gè)用例:訪問該頁面,獵取該頁面的title,推斷獵取的值是否等于hello world。獵取當(dāng)前頁面的url也是格外重要的一個(gè)操作。在某些狀況下,你訪問一個(gè)url,這時(shí)系統(tǒng)會自動對這個(gè)url進(jìn)行跳轉(zhuǎn),這就是所謂的重定向。一般測試重定向的方法是訪問
10、這個(gè)url,然后等待頁面重定向完畢之后,獵取當(dāng)前頁面的url,推斷該url是否符合預(yù)期。另外的一個(gè)常見的測試場景是提交了一個(gè)表單,假如表單內(nèi)容通過了驗(yàn)證,那么則會跳轉(zhuǎn)到一個(gè)新頁面,假如未通過驗(yàn)證,則會停留在當(dāng)前頁面,此時(shí)獵取當(dāng)前頁面的url則可以憂慮我們推斷表單提交的跳轉(zhuǎn)是否符合預(yù)期。更具體一點(diǎn),假如你在測試一個(gè)登陸頁面,輸入正確的登陸信息后,會跳轉(zhuǎn)到系統(tǒng)首頁。獵取跳轉(zhuǎn)后的url然后推斷其是否與系統(tǒng)首頁的url相符將是一個(gè)很不錯(cuò)的用例。代碼 import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.Chrom
11、eDriver; public class TitleAndUrl public static void main(String args) throws InterruptedException WebDriver dr = new ChromeDriver(); Thread.sleep(2000); String url = ; System.out.printf(now accesss %s n, url); dr.get(url); Thread.sleep(2000); System.out.printf(title of current page is %sn, dr.getTi
12、tle(); System.out.printf(url of current page is %sn, dr.getCurrentUrl(); System.out.println(browser will be close); dr.quit(); 前進(jìn)和后退場景說實(shí)話,這兩個(gè)功能一般不太常用。所能想到的場景或許也就是在幾個(gè)頁面間來回跳轉(zhuǎn),省去每次都get url。代碼 import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class ForwardAndBa
13、ck public static void main(String args) throws InterruptedException WebDriver dr = new ChromeDriver(); Thread.sleep(2000); String firstUrl = ; System.out.printf(now accesss %s n, firstUrl); dr.get(firstUrl); Thread.sleep(1000); String secondUrl = ; System.out.printf(now accesss %s n, secondUrl); dr.
14、get(secondUrl); Thread.sleep(1000); System.out.printf(now back to %s n, firstUrl); dr.navigate().back(); Thread.sleep(1000); System.out.printf(forward to %s n, secondUrl); dr.navigate().forward(); Thread.sleep(1000); System.out.println(browser will be close); dr.quit(); 簡潔的對象定位場景測試對象的定位和操作是webdriver
15、的核心內(nèi)容,其中操作又是建立在定位的基礎(chǔ)之上,因此對象定位就更加顯得重要了。定位對象的目的一般有下面幾種操作對象獲得對象的屬性,如獲得測試對象的class屬性,name屬性等等獲得對象的text獲得對象的數(shù)量webdriver供應(yīng)了一系列的對象定位方法,常用的有以下幾種idnameclass namelink textpartial link texttag namexpathcss selector代碼html代碼 form.html Form simple login form Email Password Remember me Sign in register java代碼 simpl
16、e_locate.java import java.io.File; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.JavascriptExecutor; public class SimpleLocate public static void main(String args)
17、 throws InterruptedException WebDriver dr = new ChromeDriver(); File file = new File(src/form.html); String filePath = file:/ + file.getAbsolutePath(); System.out.printf(now accesss %s n, filePath); dr.get(filePath); Thread.sleep(2000); / by id dr.findElement(By.id(inputEmail).click(); Thread.sleep(
18、1000); / by name dr.findElement(B(password); Thread.sleep(1000); / by tagname String classOfForm = dr.findElement(By.tagName(form).getAttribute(class); System.out.printf(%sn, classOfForm); Thread.sleep(1000); / by link text WebElement link = dr.findElement(By.linkText(register); (JavascriptExecutor)
19、dr).executeScript($(arguments0).fadeOut().fadeIn(), link); Thread.sleep(1000); / by partial link test WebElement sameLink = dr.findElement(By.partialLinkText(reg); (JavascriptExecutor)dr).executeScript($(arguments0).fadeOut().fadeIn(), sameLink); Thread.sleep(1000); / by css selector WebElement div
20、= dr.findElement(By.cssSelector(.controls); (JavascriptExecutor)dr).executeScript($(arguments0).fadeOut().fadeIn(), div); Thread.sleep(1000); / by xpath dr.findElement(By.xpath(/html/body/form/div3/div/label/input).click(); Thread.sleep(1000); System.out.println(browser will be close); dr.quit(); 爭辯
21、上面例子里由于html文件中引用了jquery,所以在執(zhí)行js時(shí)可以用法jquery的$()及fadeIn()等方法。假如你測試的頁面沒用包含jquery的話,這些方法是無效的。定位一組對象場景從上一節(jié)的例子中可以看出,webdriver可以很便利的用法findElement方法來定位某個(gè)特定的對象,不過有時(shí)候我們卻需要定位一組對象,這時(shí)候就需要用法findElements方法。定位一組對象一般用于以下場景:批量操作對象,比如將頁面上全部的checkbox都勾上先獵取一組對象,再在這組對象中過濾出需要具體定位的一些對象。比如定位出頁面上全部的checkbox,然后選擇最終一個(gè)代碼checkbo
22、x.html Checkbox checkbox checkbox1 checkbox2 checkbox3 radio find_element.java import java.io.File; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.sel
23、enium.JavascriptExecutor; public class SimpleLocate public static void main(String args) throws InterruptedException WebDriver dr = new ChromeDriver(); File file = new File(src/checkbox.html); String filePath = file:/ + file.getAbsolutePath(); System.out.printf(now accesss %s n, filePath); dr.get(fi
24、lePath); Thread.sleep(1000); / 選擇全部的checkbox并全部勾上 List checkboxes = dr.findElements(By.cssSelector(inputtype=checkbox); for(WebElement checkbox : checkboxes) checkbox.click(); dr.navigate().refresh(); / 打印當(dāng)前頁面上有多少個(gè)checkbox System.out.printf(%dn, checkboxes.size(); / 選擇頁面上全部的input,然后從中過濾出全部的checkbox并
25、勾選之 List inputs = dr.findElements(By.tagName(input); for(WebElement input : inputs) if(input.getAttribute(type).equals(checkbox) input.click(); / 把頁面上最終1個(gè)checkbox的勾給去掉 List allCheckboxes = dr.findElements(By.cssSelector(inputtype=checkbox); allCheckboxes.get(allCheckboxes.size() - 1).click(); Thread.sleep(1000); System.out.println(browser will be close); dr.quit(); 爭辯checkbox.html必需與find_elments.rb在同一級名目下層級定位場景在實(shí)際的項(xiàng)目測試中,經(jīng)常會有這樣的需求:頁面上有很多個(gè)屬性基本相同的元素,現(xiàn)在需要具體定位到其中的一個(gè)。由于屬性
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 營運(yùn)車輛買賣合同協(xié)議
- 8《安全記心上》第2課時(shí) 教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治三年級上冊統(tǒng)編版
- 信息技術(shù)(財(cái)經(jīng)商貿(mào)類) 試卷 教學(xué)檢測二
- 3《公民意味著什么》(第1課時(shí))(教學(xué)設(shè)計(jì))2024-2025學(xué)年統(tǒng)編版道德與法治六年級上冊
- 勞動合同樣本
- 3 我們班他們班(教學(xué)設(shè)計(jì))2024-2025學(xué)年統(tǒng)編版道德與法治四年級上冊
- 14健康過冬天(教學(xué)設(shè)計(jì))-部編版道德與法治一年級上冊
- 6-1《老子》四章(教學(xué)設(shè)計(jì))高二語文同步高效課堂(統(tǒng)編版 選擇性必修上冊)
- 12 盤古開天地 教學(xué)設(shè)計(jì)-2024-2025學(xué)年語文四年級上冊統(tǒng)編版
- 20《肥皂泡》教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語文三年級下冊
- 深度學(xué)習(xí)架構(gòu)創(chuàng)新-深度研究
- 供應(yīng)鏈韌性提升與風(fēng)險(xiǎn)防范-深度研究
- 基層醫(yī)療衛(wèi)生服務(wù)能力提升考核試卷
- 2025年江蘇連云港市贛榆城市建設(shè)發(fā)展集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 砥礪前行決心譜寫華章
- 2025年開學(xué)教導(dǎo)處發(fā)言稿(5篇)
- 機(jī)電設(shè)備安裝旁站監(jiān)理方案
- 2025年度民政局離婚協(xié)議書范本模板官方修訂2篇
- 《百達(dá)翡麗名表介紹》課件
- 《集裝箱標(biāo)識辨識》課件
- 2024年臨床輸血管理委員會年終的工作總結(jié)
評論
0/150
提交評論