zoukankan      html  css  js  c++  java
  • 定位屡试不爽

    xpath表达式的基本格式

     1 # 斜杠(/)作为路径内部的分割符。
     2 
     3 # 同一个节点有绝对路径和相对路径两种写法。
     4 
     5 # 绝对路径(absolute path)必须用"/"起首,后面紧跟根节点,比如/step/step/...。
     6 
     7 # 相对路径(relative path)则是除了绝对路径以外的其他写法,比如 step/step,也就是不使用"/"起首。
     8 
     9 # "."表示当前节点。
    10 
    11 # ".."表示当前节点的父节点
    12 
    13 - nodename(节点名称):表示选择该节点的所有子节点
    14 
    15 - "/":表示选择根节点
    16 
    17 - "//":表示选择任意位置的某个节点
    18 
    19 - "@": 表示选择某个属性
    20 
    21 # "*"表示匹配任何元素节点。
    22 # "@*"表示匹配任何属性值。
    23 
    24 # node()表示匹配任何类型的节点。

    1、通过绝对路径做定位

    1 By.xpath("html/body/div/form/input")
    View Code

    2、通过标签tag做定位

    1 By.xpath("//input")
    View Code

    3、通过元素索引定位

    1 By.xpath("//input[4]")
    View Code

    4、使用xpath属性定位

    1 By.xpath("//input[@id='kw1']")
    2 By.xpath("//input[@type='name' and @name='kw1']")
    View Code

    5、使用部分属性值匹配

    1 By.xpath("//input[start-with(@id,'nice')
    2 By.xpath("//input[ends-with(@id,'很漂亮')
    3 By.xpath("//input[contains(@id,'那么美')]")
    View Code

    6、针对复杂的定位(页面上有多个相同的属性),下面几种方法可做首选

    第一种:通过从下往上找的方式查找到想找的元素

     1 xpath=//td[@field="ProjectNo"]/ancestor::table[@class="datagrid-btable"]/tbody/tr[1]/td[2]/div[1] 

    第二种,从上玩下找的方式查找到想找的元素

    xpath=.//div[@class="panel" and contains(@style,"display: block")]//span[text()="查询"]/..
    查找按钮

  • 相关阅读:
    UVA 10462 Is There A Second Way Left?(次小生成树&Prim&Kruskal)题解
    POJ 1679 The Unique MST (次小生成树)题解
    POJ 2373 Dividing the Path (单调队列优化DP)题解
    BZOJ 2709 迷宫花园
    BZOJ 1270 雷涛的小猫
    BZOJ 2834 回家的路
    BZOJ 2506 calc
    BZOJ 3124 直径
    BZOJ 4416 阶乘字符串
    BZOJ 3930 选数
  • 原文地址:https://www.cnblogs.com/xiaoyaowuming/p/5801924.html
Copyright © 2011-2022 走看看