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()="查询"]/..
    查找按钮

  • 相关阅读:
    FZU 2150 Fire Game
    POJ 3414 Pots
    POJ 3087 Shuffle'm Up
    POJ 3126 Prime Path
    POJ 1426 Find The Multiple
    POJ 3278 Catch That Cow
    字符数组
    HDU 1238 Substing
    欧几里德和扩展欧几里德详解 以及例题CodeForces 7C
    Codeforces 591B Rebranding
  • 原文地址:https://www.cnblogs.com/xiaoyaowuming/p/5801924.html
Copyright © 2011-2022 走看看