Selenium經(jīng)典教程專題講座_第1頁
Selenium經(jīng)典教程專題講座_第2頁
Selenium經(jīng)典教程專題講座_第3頁
Selenium經(jīng)典教程專題講座_第4頁
Selenium經(jīng)典教程專題講座_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Selenium經(jīng)典教程selenium教程Selenium經(jīng)典教程專題講座第1頁10/10/Selenium介紹Selenium是一個用于Web應(yīng)用程序測試工具。Selenium測試直接運(yùn)行在瀏覽器中,就像真正用戶在操作一樣。支持瀏覽器包含IE、Mozilla Firefox、Mozilla Suite等。這個工具主要功效包含:測試與瀏覽器兼容性測試你應(yīng)用程序看是否能夠很好得工作在不一樣瀏覽器和操作系統(tǒng)之上。測試系統(tǒng)功效創(chuàng)建衰退測試檢驗(yàn)軟件功效和用戶需求。支持自動錄制動作和自動生成。Net、Java、Perl等不一樣語言測試腳本。Selenium 是ThoughtWorks專門為Web應(yīng)用程

2、序編寫一個驗(yàn)收測試工具。/10/10Selenium經(jīng)典教程專題講座第2頁10/10/selenium優(yōu)勢Selenium 測試直接在瀏覽器中運(yùn)行,就像真實(shí)用戶所做一樣。Selenium 測試能夠在 Windows、Linux 和 Macintosh上 Internet Explorer、Mozilla 和 Firefox 中運(yùn)行。其它測試工具都不能覆蓋如此多平臺。使用 Selenium 和在瀏覽器中運(yùn)行測試還有很多其它好處。下面是主要兩大好處: 經(jīng)過編寫模仿用戶操作 Selenium 測試腳本,能夠從終端用戶角度來測試應(yīng)用程序。經(jīng)過在不一樣瀏覽器中測試,更輕易發(fā)覺瀏覽器不兼容性。Seleni

3、um 關(guān)鍵,也稱 browser bot,是用 JavaScript 編寫。這使得測試腳本能夠在受支持瀏覽器中運(yùn)行。browser bot 負(fù)責(zé)執(zhí)行從測試腳本接收到命令,測試腳本要么是用 HTML 表布局編寫,要么是使用一個受支持編程語言編寫。/10/10Selenium經(jīng)典教程專題講座第3頁10/10/selenium支持瀏覽器/10/10Selenium經(jīng)典教程專題講座第4頁10/10/selenium組件# Selenium IDE:一個Firefox插件,能夠錄制用戶基本操作,生成測試用例。隨即能夠運(yùn)行這些測試用例在瀏覽器里回放,可將測試用例轉(zhuǎn)換為其它語言自動化腳本。 # Seleni

4、um Remote Control (RC) :支持各種平臺(Windows,Linux,Solaris)和各種瀏覽器(IE,F(xiàn)irefox,Opera,Safari),能夠用各種語言(Java,Ruby,Python,Perl,PHP,C#)編寫測試用例。 # Selenium Grid :允許Selenium-RC 針對規(guī)模龐大測試案例集或者需要在不一樣環(huán)境中運(yùn)行測試案例集進(jìn)行擴(kuò)展。/10/10Selenium經(jīng)典教程專題講座第5頁10/10/selenium1VSselenium2Selenium1.0不能處理一下事件:1) 本機(jī)鍵盤和鼠標(biāo)事件2) 同源策略XSS/HTTP(S)3) 彈

5、出框,對話框(基本身份認(rèn)證,自署名證書和文件上傳/下載)Selenium2.0有簡練API,WebDriver和WebElement對象,更加好抽象。且支持多中操作系統(tǒng),多語言,多瀏覽器。同時Selenium2.0進(jìn)行了架構(gòu)調(diào)整和升級:Selenium2.0 = Selenium1.0 + WebDriver(也就是說Selenium2.0合并了這兩個項目)/10/10Selenium經(jīng)典教程專題講座第6頁10/10/WebDriver一個小例子訪問it168一個例子:package webdriver;import org.openqa.selenium.WebDriver;import o

6、rg.openqa.selenium.firefox.FirefoxDriver;public class FirstCase public static void main(String args) throws InterruptedException WebDriver driver = new FirefoxDriver();driver.get();Thread.sleep(3000);driver.close();/10/10Selenium經(jīng)典教程專題講座第7頁10/10/定位元素WebDriver能夠經(jīng)過WebDriver實(shí)例來定位元素,任何語言庫都含有“Find Elemen

7、t”和“Find Elements”方法。第一個方法返回一個WebElement或者拋出異常。后者返回全部WebElement列表,或者空列表。獲取和定位元素我們調(diào)用“By”方法。下面詳細(xì)解釋下“By”方法:By ID這是一個極為有效定位元素方法。普遍現(xiàn)實(shí)狀況是UI工程師在實(shí)際編寫頁面時極少寫id或者自動生產(chǎn)一個ID,這些都是需要防止。對于一個頁面Element來說,class比自動生產(chǎn)id更加好。經(jīng)過id定位元素例子:.WebElement element = driver.findElement(By.id(coolestWidgetEvah);/10/10Selenium經(jīng)典教程專題講座

8、第8頁10/10/定位元素 By Class Name 這里class指是DOM中元素,在實(shí)際使用過程中,我們也會發(fā)覺很多DOM元素含有相同class名。經(jīng)過class name定位元素例子:CheddarGoudaList cheeses = driver.findElements(By.className(cheese);/10/10Selenium經(jīng)典教程專題講座第9頁10/10/元素定位By Tag NameDOMTag元素用Tag name 定位元素例子:WebElement frame = driver.findElement(By.tagName(iframe);/10/10Se

9、lenium經(jīng)典教程專題講座第10頁10/10/元素定位By Name例子:WebElement cheese = driver.findElement(B(cheese);By Link Text例子:cheeseWebElement cheese = driver.findElement(By.linkText(cheese);/10/10Selenium經(jīng)典教程專題講座第11頁10/10/元素定位By CSS從名字上看,這是依據(jù)CSS來定位元素。例子: milk cheeseWebElement cheese = driver.findElement(By.cssSelector(#fo

10、od span.dairy aged);/10/10Selenium經(jīng)典教程專題講座第12頁10/10/元素定位By XPATH在高級水平下,WebDriver盡可能使用瀏覽器原生XPath能力。在那些沒有原生XPath支持瀏覽器,我們提供自己實(shí)現(xiàn)方式。不過三個Driver有一定區(qū)分。 List inputs = driver.findElements(By.xpath(/input); /10/10Selenium經(jīng)典教程專題講座第13頁10/10/元素定位使用javascript您能夠執(zhí)行任意JavaScript找到一個元素,只要你返回一個DOM元素,它會自動轉(zhuǎn)換到一個WebElement

11、對象。例子:jQuery頁面加載一個簡單例子:WebElement element = (WebElement) (JavascriptExecutor)driver).executeScript(return $(.cheese)0); 尋求全部頁面上input元素:List labels = driver.findElements(By.tagName(label);List inputs = (List) (JavascriptExecutor)driver).executeScript( var labels = arguments0, inputs = ; for (var i=0;

12、 i labels.length; i+) +inputs.push(document.getElementById(labelsi.getAttribute(for); return inputs;, labels);/10/10Selenium經(jīng)典教程專題講座第14頁10/10/select標(biāo)簽操作遍歷select標(biāo)簽WebElement select = driver.findElement(By.tagName(select);List allOptions = select.findElements(By.tagName(option);for (WebElement option

13、: allOptions) System.out.println(String.format(Value is: %s,option.getAttribute(value); option.click();選擇某一個選項:Select select = new Select(driver.findElement(By.tagName(select);select.deselectAll();select.selectByVisibleText(Edam);/10/10Selenium經(jīng)典教程專題講座第15頁10/10/上傳文件WebElement FileUpload =driver.find

14、Element(By.id(upload);String filePath = C:testuploadfilemedia_adstest.jpg;FileUpload.sendKeys(filePath);/10/10Selenium經(jīng)典教程專題講座第16頁10/10/提交Submit在form中 driver.findElement(By.id(submit).click();submit不在form中 WebElement.submit();提議使用第一個方式,犯錯幾率比較小,而且比較直觀/10/10Selenium經(jīng)典教程專題講座第17頁10/10/拖拽操作WebElement ele

15、ment = driver.findElement(B(source);WebElement target = driver.findElement(B(target);(new Actions(driver).dragAndDrop(element, target).perform();/10/10Selenium經(jīng)典教程專題講座第18頁10/10/window和frame切換Windows和Frames之間切換一些web應(yīng)用程序有許多Frames或多個Windows。 WebDriver支持使用“switchTo”方法實(shí)現(xiàn)窗口之間切換。driver.switchTo().window(wi

16、ndowName);全部對driver調(diào)用都會指向特定窗口,不過我們怎么知道窗口名字呢?我們能夠查看javascript代碼和打開他鏈接:Click here to open a new window另外,還能夠經(jīng)過“window handle”去調(diào)用“switchTo().window()”,經(jīng)過這個,我們就遍從來找到全部打開窗口:for (String handle : driver.getWindowHandles() driver.switchTo().window(handle); /10/10Selenium經(jīng)典教程專題講座第19頁10/10/frame和window切換Switc

17、h一樣支持frame:driver.switchTo().frame(frameName);一樣能夠使用他訪問subframe,找frameName第一個subframe中叫做childframe:driver.switchTo().frame(frameName.0.child);/10/10Selenium經(jīng)典教程專題講座第20頁10/10/彈出框從selenium2.0開始,已經(jīng)支持對彈出框獲取Alert alert = driver.switchTo().alert();這個方法會返回當(dāng)前被打開打警告框,你能夠進(jìn)行統(tǒng)一,取消,讀取提醒內(nèi)容,后則進(jìn)入到提醒,這個一樣使用alerts,co

18、nfirms,prompts。/10/10Selenium經(jīng)典教程專題講座第21頁10/10/一些瀏覽器本身操作Navigation:History and Location之前我們就能夠經(jīng)過get方法來打開一個網(wǎng)頁,像我們所看到,WebDriver一樣還有許多小接口,Navigation就是其中一個小接口:driver.navigate().to();navigate().to和get()其實(shí)作用是一樣,不過navigate還能夠進(jìn)行瀏覽器前進(jìn)后退操作:driver.navigate().forward();driver.navigate().back(); /10/10Selenium經(jīng)典

19、教程專題講座第22頁Webdriver鼠標(biāo)動作操作在前面例子中已經(jīng)出現(xiàn)過鼠標(biāo)操作了,就是拖拽,不過鼠標(biāo)動作有很多,比如雙擊,單擊右鍵等。操作類在API中是Actions類,詳細(xì)實(shí)現(xiàn)見例子:WedDriver driver = new FirefoxDriver();Actions action = new Actions(driver);這個時候能夠調(diào)用action來進(jìn)行各種操作。Action.doubleClick();/雙擊左鍵詳細(xì)例子能夠參考seleniumAPI10/10/10/10Selenium經(jīng)典教程專題講座第23頁WebDriver中調(diào)用javascript有一些在頁面東西可能

20、利用webdriverAPI不好處理,這個時候我們能夠調(diào)用javascript來解析DOM。全部webdriver實(shí)現(xiàn)類都繼承了JavascriptExecutor接口。下面一個運(yùn)行javascript例子:WebDriver driver = new FirefoxDriver();String js=“alert(Hello)”; (javascriptExecutor)driver.executeScript(js);這個例子就會執(zhí)行alert。因?yàn)獒槍η岸?,jquery比較流行,所以我們希望能夠使用jquery,下面介紹一下使用jquery例子。10/10/10/10Selenium經(jīng)典教程專題講座第24頁WebDriver中使用jquery假如設(shè)定jquery包路徑為path,則程序以下:String jquery=null;FileInputStream input = new FileInputSt

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論