溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Locating Elements(一)

發(fā)布時(shí)間:2020-08-13 07:36:18 來源:網(wǎng)絡(luò) 閱讀:628 作者:AnthonyGao1105 欄目:軟件技術(shù)

在正式創(chuàng)建測(cè)試項(xiàng)目之前有必要詳細(xì)介紹下怎么樣去尋找頁面元素,當(dāng)然就是根據(jù)網(wǎng)頁元素的屬性了,想必大家一定都很熟知常用的瀏覽器比如Chrome和Firefox了,一般化在網(wǎng)頁上選中你想查看的元素然后右擊審查元素就可以看到該元素的屬性了,知道了這些元素屬性又怎么和webdriver結(jié)合起來呢?下面就來介紹下webdriver locate elements的方法,webdriver中用findElement(By.**())關(guān)鍵字來locate 元素

第一種最快也是最方便的方法::By ID

通常網(wǎng)頁上的元素會(huì)有一個(gè)唯一識(shí)別的ID 就像我們的×××一樣,它用來唯一標(biāo)識(shí)某元素,WebDriver通過這種方法去發(fā)現(xiàn)元素的語法很簡(jiǎn)單

driver.findElement(By.id("*****"));  這里只要知曉元素的相對(duì)應(yīng)的id就可以找到該元素了,也許會(huì)有人說我怎么知道id?直接檢查頁面元素就可以的在html代碼中看到你想要的元素的id了,比如百度頁面的搜索框相對(duì)應(yīng)的html代碼為:<input type="text" name="wd" id="kw" maxlength="100" class="s_ipt" autocomplete="off">這里可以清楚的看到該文本框的id為kw,相應(yīng)的發(fā)現(xiàn)元素代碼就應(yīng)該為:driver.findElement(By.id("kw")); 注意:不是所有的元素都有id,這個(gè)要根據(jù)但是開發(fā)的設(shè)計(jì)。

第二種方法:By Name 

driver.findElement(By.name("****"));這里只要知道相對(duì)應(yīng)的元素的name就可以成功的找到元素了,還以百度首頁的搜索框?yàn)槔?,搜索框的name為wd,相應(yīng)的代碼應(yīng)為driver.findElement(By.name("wd"));當(dāng)然也不是所有的元素都有name。

第三種方法:By xpath                                                           

driver.findElement(By.xpath("****"));這里主要是通過元素的xpath來定位元素的,xpath的知識(shí)有興趣的可以訪問http://www.w3school.com.cn/xpath/去了解下,這里不做介紹,下面介紹幾種即使你完全不懂xpath的語法你也照樣可以運(yùn)用xpath來發(fā)現(xiàn)元素的方法:

#1利用firefox的xpath插件在add-on中搜索xpath,然后選擇 xpath checker,安裝完成后,就可以運(yùn)用xpath了,比如我想得到百度首頁logo的xpath值只要把光標(biāo)移到圖片上右擊view xpath 就可以得到xpath的值了:id('lg')/x:img,所以這里相對(duì)應(yīng)的代碼就應(yīng)該為:driver.findElement(By.xpath("id('lg')/x:img"))

#2利用chrome的xpath插件,這個(gè)插件個(gè)人感覺比firefox下的插件更好用,出錯(cuò)的幾率也相應(yīng)的小了很多,該插件為PsychoXpath:https://chrome.google.com/webstore/detail/psychoxpath/bpnigkcdmnofjkmojlopmelmhgpbndog  安裝成功后,選定相應(yīng)的元素右擊你可以選擇絕對(duì)路徑(Absolute),這里不推薦這種絕對(duì)路徑的,強(qiáng)烈推薦第二種(short),當(dāng)然你也可以highlight元素,自己試試絕對(duì)感覺很有意思。

獲取到相應(yīng)的xpath后就可以把值相應(yīng)的替換到driver.findElement(By.xpath(""))中就可以了。




向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI