【问题标题】:How to find relative Xpath if element is not having unique identifier如果元素没有唯一标识符,如何找到相对 Xpath
【发布时间】:2016-05-12 08:28:15
【问题描述】:

请有人帮我写下面的相对Xpath:

html/body/div[1]/table/tbody/tr/td[2]/table/tbody/tr[4]/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td[1]/table[1]/tbody/tr[2]/td

因为它不包含任何唯一标识符,所以 firepath 给出了绝对 Xpath,但我想使用相对 Xpath。

【问题讨论】:

  • 请分享您的 HTML 代码。我们无法在不知道您的 HTML 结构的情况下创建 xpath。复制元素及其父元素的 HTML 代码
  • 使用 HTML 表格,总是很难做到与您的示例不同。但是,如果有class 属性或更独特的东西,那么至少像div[1] 这样的东西通常可以幸免于难,而不是简单地说[1]。但 Shubham 是对的,您需要先发布您的 HTML,然后才能有人帮助您。
  • @Shubham Jain 请在 html 代码下面找到:
    $398
    我想要
    处元素的 xpath
  • 提供的 HTML 不包含 Class/Id/Title 等任何属性,因此很难使用相对路径。这可能会有所帮助 //table[2]/tbody/tr/td[2]//b

标签: selenium xpath automation


【解决方案1】:

由于提供的 html 代码不包含任何 class 或 id,因此您只需使用下面提到的 Xpath:

html/body/div[1]/table/tbody/tr[3]/td/table/tbody/tr[1]/td[2]/div/font/b

但是,如果您在 html 中添加一些类或 id,如下所示:

<html><body><div><table width="100%" cellspacing="0" cellpadding="0" border="0"> <tbody> <tr> <tr> <tr valign="top"> <td height="101"> <table width="270" cellspacing="0" cellpadding="2" border="0"> <tbody> <tr bgcolor="#CCCCCC"> <td width="80%"> <td width="20%"> <div id="price" align="right"> <font face="Arial, Helvetica, sans-serif, Verdana" size="2"> <b>$398</b> </font> </div> </td> </tr> <tr> <tr bgcolor="#CCCCCC"> <tr> <tr bgcolor="#CCCCCC"> </tbody> </table> </td> </tr> </tbody> </table></div></body></html>

然后你可以使用下面提到的Xpath:

.//*[@id='price']/font/b

【讨论】:

  • @Sarabjit Singh 谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-04
  • 2016-08-19
  • 2021-11-19
  • 2019-03-26
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
相关资源
最近更新 更多