下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、工具選擇:在我們開(kāi)發(fā)測(cè)試腳本的過(guò)程中各個(gè)瀏覽器給我們也提供了方便定位元素的工具,我比較喜歡使用firefox的firebug工具,也是目前很多開(kāi)發(fā)測(cè)試人 員比較熱衷的選擇,原因是firefox是唯一能夠集成selenium IDE的瀏覽器,并且firebug給用戶提供了豐富的擴(kuò)展組件,我們可以根據(jù)自己的需要來(lái)選擇,一般情況下,使用firebug+firefinder 就足夠使用了,firefinder支持xpath以及css選擇器定位元素的功能,很方便幫助我們調(diào)試測(cè)試腳本 2、元素定位的方法:findElement() 與 findElements() findElement() 該方法返
2、回基于指定查詢條件的webElement對(duì)象,或拋出不符合條件的異常 eg:driver.findElement(By.id("userID"); findElements() 該方法返回指定查詢條件的WebElement的對(duì)象集合,或返回null 3、WebElement對(duì)象提供的各種定位元素策略 ID:driver.findElement(By.id(<elementID>)Name:driver.findElement(B(<elementName>)className:driver.findElement(By.className
3、(<elementClassName>)tagName:driver.findElement(By.tagName(<htmlTagName>)linkText:driver.findElement(By.linkText(<linkText>)partialLinkText:driver.findElement(By.partialLinkText(<partialLinkText>)css:driver.findElement(By.cssSelector(<cssSelector>)xpath:driver.findElemen
4、t(By.xpath(<xpathQuery>)4、webelement類提供了諸多方法,在我們開(kāi)發(fā)腳本過(guò)程中如何選擇最可靠,效率最高的方法,使用id,name是首選,因?yàn)樗麄冊(cè)趆tml標(biāo)簽中是唯一的,所以是最可靠的 ID定位:driver.findElement(By.id("username") name定位:driver.findElement(B("username") class定位:driver.findElement(By.className("username") 多學(xué)一招:WebElement
5、類支持查詢子類元素,如果頁(yè)面中存在重復(fù)元素,但在不同div中,我們可以先定位到其父元素,然后定位其子元素,方法如下: WebElement hello = driver.findElement(By.id("div1").findElement(By.lindText("hello"); 5、使用WebElements定位多個(gè)相似的元素,比如頁(yè)面中存在五個(gè)單選按鈕,他們有相同的class屬性,值為:myRadio,我們想對(duì)五個(gè)按鈕循環(huán)操作,我們可以把它們?nèi)咳〕鰜?lái)放到集合中,然后做循環(huán)操作,如下: List<WebElement> radio
6、s = driver.findElements(By.className("myRadio");for(int i = 0;i<radios.size();i+)radios.get(i).click();其他定位方法與操作id,name類似,這里不再贅述,接下來(lái)我著重對(duì)css選擇器與Xpath描述下一、WebDriver 的By類中提供了cssSelector()方法,該方法使用有以下幾種形式:1、使用相對(duì)路徑定位元素如,我們要定為DOM中的input元素,我們可以這樣操作,不考慮其在DOM中的位置,但這樣做存在一定弊端,當(dāng)DOM中存在多個(gè)input元素時(shí),該方法總
7、返回DOM中的第一個(gè)元素,這并不是我們所期待的eg:WebElement username = driver.findElement(By.cssSelector("input");另外,為了使用這種方法更準(zhǔn)確的定位元素,我們可以結(jié)合該元素的其他屬性來(lái)實(shí)現(xiàn)精確定位的目的a、結(jié)合id來(lái)定位,driver.findElement(By.cssSelector("input#username"); 在標(biāo)簽與id之間使用#連接,如果對(duì)css了解的朋友一看就知道為什么會(huì)這樣寫了,不了解也沒(méi)關(guān)系,只要記住這種寫法就OK了另外該方法也可簡(jiǎn)寫為driver.findEl
8、ement(By.cssSelector("#username"); 有點(diǎn)兒類似于id選擇器b、使用元素的任何屬性來(lái)定位元素 driver.findElement(By.cssSelector("標(biāo)簽名屬性名='屬性值'"); c、匹配部分屬性值 = driver.findElement(By.cssSelector("標(biāo)簽名屬性名='xxx'"); 匹配屬性值以xxx開(kāi)頭的元素$= driver.findElement(By.cssSelector("標(biāo)簽名屬性名$='xxx'
9、;"); 匹配屬性值以xxx結(jié)尾的元素*= driver.findElement(By.cssSelector("標(biāo)簽名屬性名='xxx'"); 匹配屬性值包含xxx的元素2、使用相對(duì)+絕對(duì)路徑方法,這里是我自己定義的方法,方便記憶,的確也是這樣來(lái)實(shí)現(xiàn)的 driver.findElement(By.cssSelector("div#login>input") 該方法中“div#login>input” 首先通過(guò)相對(duì)路徑定位到id為login的div元素,然后查找其子元素input(絕對(duì)路徑) 二、使用xpath定位元
10、素,相比cssSelector,xpath是我比較常用的一種定位元素的方式,因?yàn)樗芊奖悖秉c(diǎn)是,消耗系統(tǒng)性能 1、使用絕對(duì)路徑定位元素 driver.findElement(By.xpath("/html/body/div/form/input") 2、使用相對(duì)路徑定位元素 driver.findElement(By.xpath("/input") 返回查找到的第一個(gè)符合條件的元素 3、使用索引定位元素,索引的初始值為1,注意與數(shù)組等區(qū)分開(kāi) driver.findElement(By.xpath("/input2") 返回查找到的第
11、二個(gè)符合條件的元素 4、結(jié)合屬性值來(lái)定位元素 driver.findElement(By.xpath("/inputid='username'"); driver.findElement(By.xpath("/imgalt='flowr'"); 5、使用邏輯運(yùn)算符,結(jié)合屬性值定位元素,and與or driver.findElement(By.xpath("/inputid='username' and name='userID'"); 6、使用屬性名來(lái)定位元素 drive
12、r.findElement(By.xpath("/inputbutton") 7、類似于cssSlector,使用部分屬性值匹配元素 starts-with() driver.findElement(By.xpath("/inputstars-with(id,'user')")ends-with driver.findElement(By.xpath("/inputends-with(id,'name')")contains() driver.findElement(By.xpath("/inputcontains(id,"ernam")")8、使用任意屬性值匹配元素 driver.findElement(By.xpath("/input*='username'") 9、使用xpath軸來(lái)定位元素 這里略了,詳見(jiàn) 三、使用innerText定位元素 1、使用cssSelector查找innerText定位元素 driver.findElement(By.cssSelector("spante
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年家具制造與供應(yīng)協(xié)議
- 企業(yè)課件教學(xué)
- 2024奶牛養(yǎng)殖企業(yè)環(huán)保責(zé)任合同
- 2024年建筑工程裝飾分包合同文本
- 2024年工程建設(shè)項(xiàng)目中介服務(wù)簡(jiǎn)約合同
- 2024蘇州汽車質(zhì)押借款合同范本
- 公司行政部門經(jīng)理工作總結(jié)
- 企業(yè)迎新晚會(huì)主持詞(6篇)
- 現(xiàn)代商務(wù)課件教學(xué)課件
- 英語(yǔ)課件簡(jiǎn)約教學(xué)課件
- 廣東深圳市福田區(qū)選用機(jī)關(guān)事業(yè)單位輔助人員和社區(qū)專職工作者365人模擬試卷【共500題附答案解析】
- (本科)新編大學(xué)英語(yǔ)寫作revised chapter 2ppt課件(全)
- 表格02保潔質(zhì)量評(píng)分表
- 上海中、低壓電網(wǎng)配置原則及典型設(shè)計(jì)
- 公共經(jīng)濟(jì)學(xué)ppt課件(完整版)
- 非參數(shù)統(tǒng)計(jì)教學(xué)ppt課件(完整版)
- 關(guān)于成立醫(yī)院愛(ài)國(guó)衛(wèi)生委員會(huì)及完善工作職責(zé)制度的通知
- 公司股權(quán)轉(zhuǎn)讓協(xié)議_1
- 常用高頸法蘭尺寸表
- 基于嵌入式的溫度傳感器的設(shè)計(jì)
- 汽車線束控制計(jì)劃
評(píng)論
0/150
提交評(píng)論