【问题标题】:xpath or css-selector nth of nth-child or position of last()xpath 或 css-selector nth-child 的 nth 或 last() 的位置
【发布时间】:2022-01-05 03:23:39
【问题描述】:

[id*='GwtGFD_'] > option:last-child # CSS 选择器

和

//*[contains(@id, 'GwtGFD_')]/option[last()]#XPATH

两者都返回预期的 2 个结果。我想做类似//*[contains(@id, 'GwtGFD_')]/option[last()][1] 和//*[contains(@id, 'GwtGFD_')]/option[last()][2] 但[1] 会返回这两个元素。等效的 css-selector 似乎也是如此。

如何检索last() 的第一个和最后一个或第n 个位置?

每个预期位置 [1] 和 [2] 结果的完整 xpath 如下:

 /html/body/div[2]/form/div/div[1]/div[2]/div/div[1]/div/div/table[1]/tbody/tr/td/table/tbody/tr[6]/td/table/tbody/tr/td[4]/select[1]/option[37]
 /html/body/div[2]/form/div/div[1]/div[2]/div/div[1]/div/div/table[1]/tbody/tr/td/table/tbody/tr[6]/td/table/tbody/tr/td[4]/select[2]/option[37]

所以也许我只需要以不同的方式获取select[1] 和select[2],但我还没有找到。我还想了解为什么我希望上面的工作不起作用,以及我如何能够检索last() 结果的第 n 个位置。

【问题讨论】:

    标签: html xpath css-selectors


    【解决方案1】:

    在尝试了很多事情并决定在这里发帖寻求帮助几个小时后,我这么快就找到了答案,我感到很尴尬;我希望这对其他人有所帮助,而且我肯定对实现这一目标的更好方法感到好奇......

    我能够使用以下示例获得所需的结果:

    [id*='GwtGFD_']:nth-child(1) > option:last-child
    [id*='GwtGFD_']:nth-child(5) > option:last-child
    //*[contains(@id, 'GwtGFD_')][1]/option[last()]
    //*[contains(@id, 'GwtGFD_')][4]/option[last()]
    

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 2021-12-12
      • 2018-07-30
      • 2014-04-07
      相关资源
      最近更新 更多