1. 程式人生 > >WEB自動化測試通過xpath定位的精度問題

WEB自動化測試通過xpath定位的精度問題

目的自動化:定位360雲盤中的資料夾,雙擊進入資料夾

F12檢視HTML程式碼,該檔案只有<span class="ico ico-folder"></span>,無法通過ID、name、link定位,通過class定位也是不準確,因為其他資料夾的class也是ico ico-folder,因此考慮通過xpath定位。

如圖,觀察book資料夾,發現它有三層結構,一層是最外層的透明輪廓,二層是資料夾的黃色圖示,三層是資料夾的名字book。

操作時發現滑鼠點選上面的任何一層結構,都能進入該資料夾。

第一次定位最外層的透明輪廓的xpath,/html/body/div[3]/div[4]/div[1]/div[6]/div[2]/div/ul/li[1],執行自動化指令碼,報錯無法定位到該元素。

猜測原因可能是xpath路徑不夠精確,因此用第二層或第三層定位。

第二層的xpath為/html/body/div[3]/div[4]/div[1]/div[6]/div[2]/div/ul/li[1]/div[2]/span[1],對比可發現比上面的xpath多了div[2]/span[1],可見確實是路徑不精確。

用第二層的xpath執行自動化指令碼,可以進入到資料夾,問題解決。

同樣用第三層的xpath也能夠完成,因為第三層的xpath為/html/body/div[3]/div[4]/div[1]/div[6]/div[2]/div/ul/li[1]/div[2]/span[2]

附指令碼:

import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.get("http://yunpan.360.cn/")
本段登入指令碼略
time.sleep(5)
doubleclick = driver.find_element_by_xpath('/html/body/div[3]/div[4]/div[1]/div[6]/div[2]/div/ul/li[1]/div[2]/span[1]')
ActionChains(driver).double_click(doubleclick).perform()