zoukankan      html  css  js  c++  java
  • selenium---xpath轴定位

      前面介绍了元素定位通过xpath的方法,安静没有介绍完全,其实通过xpath定位还有一种基本上用不到的方法,这里安静也介绍下,xpath定位之轴定位

    轴定位

    轴定位其实就是通过html中的一些节点的节点集进行定位的,通常需要用到这些

    参考资料:https://www.runoob.com/xpath/xpath-axes.html

    轴名称结果
    ancestor 选取当前节点的所有先辈(父、祖父等)。
    ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身。
    attribute 选取当前节点的所有属性。
    child 选取当前节点的所有子元素。
    descendant 选取当前节点的所有后代元素(子、孙等)。
    descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身。
    following 选取文档中当前节点的结束标签之后的所有节点。
    following-sibling 选取当前节点之后的所有兄弟节点
    namespace 选取当前节点的所有命名空间节点。
    parent 选取当前节点的父节点。
    preceding 选取文档中当前节点的开始标签之前的所有节点。
    preceding-sibling 选取当前节点之前的所有同级节点。
    self 选取当前节点。

     

     使用方法:

    轴名称::标签名

    例子1:通过祖宗辈进行定位孙子辈

    因为这里我们需要通过祖宗辈来定位,轴节点这里选择 descendant   //*[@id="main"]/descendant::input[@id="zzk_q"] ,这里安静通过ctrl+f来验证下

    通过这个我们查看到只有一个元素,说明我们的定位没有问题,如果小伙伴们还不确认,我们可以通过代码进行验证

    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    driver.get('https://www.cnblogs.com/')
    driver.find_element_by_xpath('//*[@id="main"]/descendant::input[@id="zzk_q"]').send_keys('测试-安静')
    time.sleep(5)
    driver.quit()

    例子2:通过节点定位之前节点内容

    这里安静还是通过定位找找看来定位

    这里通过想要定位元素的兄弟来定位了该元素  //*[@class='search_btn']/preceding::input[@id="zzk_q"] 

    同样,我们可以通过代码进行验证,是否定位正确

    from selenium import webdriver
    import time
    driver = webdriver.Chrome()
    driver.get('https://www.cnblogs.com/')
    driver.find_element_by_xpath('//*[@class="search_btn"]/preceding::input[@id="zzk_q"]').send_keys('测试-安静')
    time.sleep(5)
    driver.quit()

    这里安静简单的通过轴节点定位举了几个例子,具体的实践操作需要小伙伴们私下自己多锻炼,多写,元素定位没有什么方面的地方,只有写的多了,见得多了,自然也就明白了。

  • 相关阅读:
    例7-13
    例7-11
    例7-1
    例6-5
    例6-3
    例6-2
    例6-1
    例5-9
    例5-8
    例5-7
  • 原文地址:https://www.cnblogs.com/qican/p/13387024.html
Copyright © 2011-2022 走看看