V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jakeyfly
V2EX  ›  问与答

求问一个 xpath 的技巧,查了半天没搞懂

  •  
  •   jakeyfly · 2018-12-25 00:48:07 +08:00 · 1751 次点击
    这是一个创建于 2187 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假调一个页面上某个 table 下面(定信这个 table 不在这个问题讨论内)有十行 tr,每个 tr 中都有五个 td。有 N 个 tr 中的第五个 td 的 class 属性是=‘ 1 ’

    如果筛选出第五个 td 的 class=1 的 tr 呢

    感觉 好复杂

    7 条回复    2018-12-25 15:08:13 +08:00
    Phant0m
        1
    Phant0m  
       2018-12-25 02:26:40 +08:00 via iPhone
    打开 Chrome 控制台 选择元素 鼠标点到你想获取的元素 右键 copy xpath
    saran
        2
    saran  
       2018-12-25 02:30:10 +08:00 via Android
    td[5]/tr
    class 能使用 int ?
    imn1
        3
    imn1  
       2018-12-25 08:33:57 +08:00
    //td[5][@class='1']/..

    思路:先找到能定位的元素,「/..」就是其父级
    定位元素优先使用带 id 的,就是从最接近的带 id 的那个开始

    推荐:google 「 css xpath cheatsheet 」,能找到一个或两个 pdf (国外站好多地方有),单页,就是一张大表格,很方便查找
    如果学过一遍 xpath,还不熟悉,就多用这个 cheatsheet 查,熟能生巧
    levelyu
        4
    levelyu  
       2018-12-25 09:21:28 +08:00   ❤️ 1
    axes 大法好
    Les1ie
        5
    Les1ie  
       2018-12-25 09:30:59 +08:00
    如果不会写 xpath 的话,可以像 #1 那样,ctrl+shift+c 找到目标元素,然后右键 Copy XPath,看一下表达式就知道在哪里传索引了
    kernelG
        6
    kernelG  
       2018-12-25 10:23:15 +08:00
    打开浏览器的开发者工具,直接选定节点,然后 copy xpath 就可以了
    GentleSadness
        7
    GentleSadness  
       2018-12-25 15:08:13 +08:00
    牛逼
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1610 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:51 · PVG 00:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.