在百度首页,通过文字,父子元素,兄弟元素进行定位

一、文字定位:

通过界面上的文字进行定位,注意如果同一个页面上存在多个同样的文字的情况,返回的值会是多个,建议只存在一个情况下才用这方法。

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

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

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

 

二、父子元素定位

 通过界面上的父元素和子元素关系定位:

 如:通过输入框<input >元素来定位父元素<span>的父元素<form>

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

 

就可以通过:

driver.find_element_by_xpath('//*[@]/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('//*[@))
sleep(5)
driver.quit()

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

 

三、兄弟元素定位

通过界面上的兄弟元素关系定位:

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

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

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

就可以通过://*[@]/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('//*[@]/a[3]/preceding-sibling::a[1]').text) # 上节点
sleep(5)
driver.quit()

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

 

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

如:通过定位百度界面上的“地图”定位哥哥元素“视频”

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

就可以通过://*[@]/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('//*[@]/a[3]/following-sibling::a[1]').text) # 下节点
sleep(5)
driver.quit()

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

 

相关文章:

  • 2022-12-23
  • 2021-11-20
  • 2022-01-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-08-07
  • 2021-09-04
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-13
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案