記錄一下selenium,appium中xpath根據父子、兄弟、相鄰節點定位的方法:
一、定位方式簡介:
1.Xpath軸所有的定位方式:
2.常用的定位方式彙總:/child:: (由父節點定位子節點),/parent::(由子節點定位父節點),/preceding-sibling::(由弟弟節點定位哥哥節點),/following::(由哥哥節點定位弟弟節點)
二、定位方式詳細實例介紹:
1.由父節點定位子節點/child:: (由父節點定位子節點)
<html> <body> <div id="祖父節點"> <!--父節點定位子節點--> <div id="父節點"> <div>子節點</div> </div> </div> </body> </html>
各種定位方式:
#問題:根據父節點,找出子節點 #1.串聯查找 driver.find_element_by_id('父節點).find_element_by_tag_name('div').text #2.xpath父子關係尋找 driver.find_element_by_xpath("//div[@id='父節點']/div").text #3.xpath軸 child driver.find_element_by_xpath("//div[@id='父節點']/child::div").text
appium實例應用:
2.由子節點定位父節點 /parent::(由子節點定位父節點)
#問題:通過子節點定位父節點內容 <html> <body> <div id="祖父節點"> <!--子節點定位父節點--> <div> <div>父節點 <div> <div id="子節點"></div> </div> </div> </div> </div> </body> </html>
各種定位方式:
# 1.xpath定位: `.`代表當前節點; '..'代表父節點 driver.find_element_by_xpath("//div[@id='子節點']/../..").text # 2.xpath軸 parent driver.find_element_by_xpath("//div[@id='子節點']/parent::*/parent::div").text
appium實例應用:
3.由弟弟節點定位哥哥節點:/preceding-sibling::(由弟弟節點定位哥哥節點)
#問題:聽過弟弟節點定位二哥節點 <html> <body> <div> <!--下面兩個節點用於兄弟節點定位--> <div>大哥節點</div> <div id="二哥節點"></div> <div>弟弟節點</div> </div> </body> </html>
定位方式:
# 1.xpath,通過父節點獲取其大哥節點 print driver.find_element_by_xpath("//div[@id='二哥節點']/../div[1]").text # 2.xpath軸 preceding-sibling print driver.find_element_by_xpath("//div[@id='二哥節點']/preceding-sibling::div[1]").text
4.由哥哥節點定位弟弟節點:/following::(由哥哥節點定位弟弟節點)
#問題:定位弟弟節點 <html> <body> <div> <!--下面兩個節點用於兄弟節點定位--> <div>大哥節點</div> <div id="二哥節點"></div> <div>弟弟節點</div> </div> </body> </html>
定位方式:
# 1.xpath,通過父節點獲取其弟弟節點 driver.find_element_by_xpath("//div[@id='二哥節點']/../div[3]").text # 2.Xpath軸 following-sibling driver.find_element_by_xpath("//div[@id='二哥節點]/following-sibling::div[1]").text # 3.Xpath軸 following driver.find_element_by_xpath("//div[@id='二哥節點']/following::*").text
appium實例應用: