UI自動化通過文字、父子元素,兄弟元素定位


在百度首頁,通過文字,父子元素,兄弟元素進行定位

一、文字定位:

通過界面上的文字進行定位,注意如果同一個頁面上存在多個同樣的文字的情況,返回的值會是多個,建議只存在一個情況下才用這方法。

如:定位百度界面上的“地圖”文字:

 

就可以通過:driver.find_element_by_xpath("//*[text()='地圖']") ,進行定位。

driver = webdriver.Chrome()
driver.implicitly_wait(20)
driver.get("https://www.baidu.com")
print(driver.find_element_by_xpath("//*[text()='地圖']").text)
sleep(5)
driver.quit()

 

 

二、父子元素定位

 通過界面上的父元素和子元素關系定位:

 如:通過輸入框<input id="kw">元素來定位父元素<span>的父元素<form>

 

就可以通過:

driver.find_element_by_xpath('//*[@id="kw"]/../..')或driver.find_element_by_xpath('//*[@id="kw"]/parent::*/parent::form'),進行定位父級。

(1) . 表示當前節點,.. 表示父節點

(2)parent,取當前節點的父節點

driver = webdriver.Chrome()
driver.implicitly_wait(20)
driver.get("https://www.baidu.com")
print(driver.find_element_by_xpath('//*[@id="kw"]/../..').get_attribute("id"))
print(driver.find_element_by_xpath('//*[@id="kw"]/parent::*/parent::form').get_attribute("id"))
sleep(5)
driver.quit()

 

三、兄弟元素定位

通過界面上的兄弟元素關系定位:

 (1)通過弟弟元素定位哥哥元素

如:通過定位百度界面上的“地圖”定位哥哥元素“hao123”

就可以通過://*[@id="u1"]/a[3]/preceding-sibling::a[1]來進行哥哥元素定位,其中“a[1]”表示離本元素最近的一個a元素,如果是“a[2]”則表示離本元素最近的第2個a元素
driver = webdriver.Chrome(a)
driver.implicitly_wait(20)
driver.get("https://www.baidu.com")
print(driver.find_element_by_xpath('//*[@id="u1"]/a[3]/preceding-sibling::a[1]').text) # 上節點
sleep(5)
driver.quit()

 

 

(2)通過哥哥元素定位弟弟元素

如:通過定位百度界面上的“地圖”定位哥哥元素“視頻”

就可以通過://*[@id="u1"]/a[3]/following-sibling::a[1]來進行弟弟元素定位,其中“a[1]”表示離本元素最近的一個a元素,如果是“a[2]”則表示離本元素最近的第2個a元素
driver = webdriver.Chrome()
driver.implicitly_wait(20)
driver.get("https://www.baidu.com")
print(driver.find_element_by_xpath('//*[@id="u1"]/a[3]/following-sibling::a[1]').text) # 下節點
sleep(5)
driver.quit()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM