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()