您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源功能測(cè)試工具 > Selenium
在Selenium WebDriver中使用By.Xpath快速定位頁(yè)面元素
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/1/23 9:40:13 ] 推薦標(biāo)簽:Selenium WebDriver 頁(yè)面

driver.findElement(By.xpath("//input[@name='pass']")).clear();

driver.findElement(By.xpath("//input[@name='pass']")).sendKeys("密碼");

driver.findElement(By.xpath("//input[@id= passwords]")).clear();

driver.findElement(By.xpath("//input[@id= passwords]")).sendKeys("123456");

重新回放,時(shí)間仍然很長(zhǎng),看來(lái)通過(guò)一個(gè)元素鍵值對(duì)定位是不可靠的,那能不能通過(guò)多個(gè)元素呢?跟QTP中的高級(jí)描述性編程一樣。那xpath的語(yǔ)法是什么,多個(gè)元素鍵值對(duì)怎么連接到一起呢?

 

首先查找name=pass的這個(gè)元素的另外一個(gè)元素鍵值對(duì):class= textfild,用這兩個(gè)定位一下試試看。

driver.findElement(By.xpath("//input[@name='pass'and@class=’ textfild’]")).clear();

driver.findElement(By.xpath("//input[@name='pass'and@class=’ textfild’]")).sendKeys("密碼");

driver.findElement(By.xpath("//input[@id= passwordsand@class=’ textfild required’]")).clear();

driver.findElement(By.xpath("//input[@id=passwordsand@class=’textfild required’]")).sendKes(“12..”);

再回訪,速度果然快了,很快便識(shí)別到了密碼框的位置,并且進(jìn)行了輸入。

 

關(guān)于xpath查找元素還可以通過(guò)contains(一個(gè)字符串查找函數(shù))來(lái)實(shí)現(xiàn),語(yǔ)法是

//input[contains(@id,vakue)andcontains(@id,value)],此中的id和value是定位input元素的鍵值對(duì)

 

例如:

//input[contains(@class,'textfild') and contains(@name,'pass')]

 

那后經(jīng)過(guò)整合和簡(jiǎn)化,4句的代碼可簡(jiǎn)化為以下兩句

driver.findElement(By.xpath("//input[contains(@class,'textfild')andcontains(@name,'pass')]")).clear();

driver.findElement(By.xpath("//input[@id='passwords'and@class='textfild required'and@type='password']")).sendKeys("123456");

 

為什么能簡(jiǎn)化為2行呢,看上面的截圖,其實(shí)一上來(lái)的時(shí)候密碼框里有“密碼”兩個(gè)字,當(dāng)鼠標(biāo)移入密碼框獲取焦點(diǎn)以后,“密碼”文字消失,用戶可以輸入自己真正的密碼。所以

driver.findElement(By.xpath("//input[@name='pass'and@class=’ textfild’]")).sendKeys("密碼");

這句話是我們不需要的。因?yàn)楫?dāng)密碼框獲取焦點(diǎn)以后,“密碼”文字消失了,所以下面的清空也沒(méi)有必要存在了

driver.findElement(By.xpath("//input[@id= passwordsand@class=’ textfild required’]")).clear();

這樣,代碼簡(jiǎn)化了。

回放,一切ok。

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