在 web table 中使用 xpath 获取中间列值和其他两列值

Getting the middle column value with the other two column values using xpath in web table

<tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>

[https://www.w3schools.com/html/html_tables.asp]

您可以在 link 中找到示例网站 table。我想要与公司和国家的联系价值。

我试过这样的东西

//td[text()='Laughing Bacchus Winecellars']//following-sibling::td and //td[text()='Canada']//preceding-sibling::td

您可以遍历 <tr> 并使用 //tr/td[2] 到 select 第二个 <td>

http://xpather.com/aHyybZni

尝试这个 select 需要 td 节点:

//td[preceding-sibling::td[.="Alfreds Futterkiste"] and following-sibling::td[.="Germany"]]

尝试以下 xpath:

//td[preceding-sibling::td[text()='Laughing Bacchus Winecellars'] and following-sibling::td[text()='Canada']]

要提取中间列值,即 Maria Anders,您需要引入 for the visibilityOfElementLocated() and you can use either of the following :

  • 使用公司文本 Alfreds Futterkiste:

    • xpath:

      //table[@id='customers']//tr//td[text()='Alfreds Futterkiste']//following::td[1]
      
    • 代码行:

      System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//table[@id='customers']//tr//td[text()='Alfreds Futterkiste']//following::td[1]"))).getText());
      
  • 使用国家/地区文本 德国:

    • xpath:

      //table[@id='customers']//tr//td[text()='Germany']//preceding::td[1]
      
    • 代码行:

      System.out.println(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//table[@id='customers']//tr//td[text()='Germany']//preceding::td[1]"))).getText());