`
fantaxy025025
  • 浏览: 1251049 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

selenium元素定位之父子节点、兄弟节点

 
阅读更多

=

Xpath还是好用一些,更加完美一些。

css定位,selenium做的不如jquery好用,需要继续改进。

=

 

1、通过父节点定位子节点

# 1.串联寻找
print driver.find_element_by_id('B').find_element_by_tag_name('div').text
 
# 2.xpath父子关系寻找
print driver.find_element_by_xpath("//div[@id='B']/div").text
 
# 3.css selector父子关系寻找
print driver.find_element_by_css_selector('div#B>div').text
 
# 4.css selector nth-child
print driver.find_element_by_css_selector('div#B div:nth-child(1)').text
 
# 5.css selector nth-of-type
print driver.find_element_by_css_selector('div#B div:nth-of-type(1)').text
 
# 6.xpath轴 child
print driver.find_element_by_xpath("//div[@id='B']/child::div").text

2、通过子节点定位父节点

# 1.xpath: `.`代表当前节点; '..'代表父节点
print driver.find_element_by_xpath("//div[@id='C']/../..").text
# 2.xpath轴 parent
print driver.find_element_by_xpath("//div[@id='C']/parent::*/parent::div").text

3、通过老弟节点定位老哥节点

# 1.xpath,通过父节点获取其哥哥节点
print driver.find_element_by_xpath("//div[@id='D']/../div[1]").text
# 2.xpath轴 preceding-sibling
print driver.find_element_by_xpath("//div[@id='D']/preceding-sibling::div[1]").text

4、通过哥哥节点定位弟弟节点

# 1.xpath,通过父节点获取其弟弟节点
print driver.find_element_by_xpath("//div[@id='D']/../div[3]").text
# 2.xpath轴 following-sibling
print driver.find_element_by_xpath("//div[@id='D']/following-sibling::div[1]").text
# 3.xpath轴 following
print driver.find_element_by_xpath("//div[@id='D']/following::*").text
# 4.css selector +
print driver.find_element_by_css_selector('div#D + div').text
# 5.css selector ~
print driver.find_element_by_css_selector('div#D ~ div').text

 

=

=

=

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics