在正式創(chuàng)建測試項目之前有必要詳細(xì)介紹下怎么樣去尋找頁面元素,當(dāng)然就是根據(jù)網(wǎng)頁元素的屬性了,想必大家一定都很熟知常用的瀏覽器比如Chrome和Firefox了,一般化在網(wǎng)頁上選中你想查看的元素然后右擊審查元素就可以看到該元素的屬性了,知道了這些元素屬性又怎么和webdriver結(jié)合起來呢?下面就來介紹下webdriver locate elements的方法,webdriver中用findElement(By.**())關(guān)鍵字來locate 元素
成都創(chuàng)新互聯(lián)是一家專業(yè)提供贛州企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計、小程序制作等業(yè)務(wù)。10年已為贛州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)公司優(yōu)惠進(jìn)行中。
第一種最快也是最方便的方法::By ID
通常網(wǎng)頁上的元素會有一個唯一識別的ID 就像我們的×××一樣,它用來唯一標(biāo)識某元素,WebDriver通過這種方法去發(fā)現(xiàn)元素的語法很簡單
driver.findElement(By.id("*****")); 這里只要知曉元素的相對應(yīng)的id就可以找到該元素了,也許會有人說我怎么知道id?直接檢查頁面元素就可以的在html代碼中看到你想要的元素的id了,比如百度頁面的搜索框相對應(yīng)的html代碼為:這里可以清楚的看到該文本框的id為kw,相應(yīng)的發(fā)現(xiàn)元素代碼就應(yīng)該為:driver.findElement(By.id("kw")); 注意:不是所有的元素都有id,這個要根據(jù)但是開發(fā)的設(shè)計。
第二種方法:By Name
driver.findElement(By.name("****"));這里只要知道相對應(yīng)的元素的name就可以成功的找到元素了,還以百度首頁的搜索框?yàn)槔阉骺虻膎ame為wd,相應(yīng)的代碼應(yīng)為driver.findElement(By.name("wd"));當(dāng)然也不是所有的元素都有name。
第三種方法:By xpath
driver.findElement(By.xpath("****"));這里主要是通過元素的xpath來定位元素的,xpath的知識有興趣的可以訪問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,所以這里相對應(yīng)的代碼就應(yīng)該為:driver.findElement(By.xpath("id('lg')/x:img"))
#2利用chrome的xpath插件,這個插件個人感覺比firefox下的插件更好用,出錯的幾率也相應(yīng)的小了很多,該插件為PsychoXpath:https://chrome.google.com/webstore/detail/psychoxpath/bpnigkcdmnofjkmojlopmelmhgpbndog 安裝成功后,選定相應(yīng)的元素右擊你可以選擇絕對路徑(Absolute),這里不推薦這種絕對路徑的,強(qiáng)烈推薦第二種(short),當(dāng)然你也可以highlight元素,自己試試絕對感覺很有意思。
獲取到相應(yīng)的xpath后就可以把值相應(yīng)的替換到driver.findElement(By.xpath(""))中就可以了。