【问题标题】:Selenium getAttribute from in between tags?标签之间的硒getAttribute?
【发布时间】:2012-08-30 13:44:13
【问题描述】:

这是我想用 selenium 验证的来源:

<tr class="myclass">
    <td class="column" style="width:50%"> Key </td>
    <td style="width:50%"> Value </td>
    <td style="width:50%"> &nbsp; </td>
</tr>

我想验证那里是否包含“价值观”这个词。

以下语句总是返回:“Key”而不是“Values”

driver.findElement(By.xpath("//tr[td[contains(text(), 'Key')]]/td")).getText();

我做错了什么?如何获取 xpath 表达式的文本?

【问题讨论】:

    标签: java xpath selenium selenium-webdriver


    【解决方案1】:

    来试试这个

    driver.findElement(By.xpath("//tr[@class='myclass']/td[1]")).getText();
    

    表中的所有列都是兄弟。如果您在没有数组的情况下调用它们,它将返回第一个的值。如果 td[1] 不起作用,请尝试 td[2]。

    【讨论】:

      【解决方案2】:

      为什么不只是这样,它不会取决于它在什么位置,只是它存在?

      //tr/descendant::td[contains(text(), 'Value')]
      

      或在以下位置执行 FindElements:

      //tr[@class='myclass']/td
      

      然后循环遍历它们,确保出现“值”。

      【讨论】:

        【解决方案3】:

        尝试使用 CSS 选择器

        driver.findElement(By.cssselector(".myclass &gt; td[style='width:50%']")).getText();

        【讨论】:

          猜你喜欢
          • 2012-10-04
          • 2011-07-11
          • 1970-01-01
          • 2021-08-25
          • 2012-05-13
          • 1970-01-01
          • 1970-01-01
          • 2019-12-15
          • 1970-01-01
          相关资源
          最近更新 更多