首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebElement.findElement方法是在WebDriver范围下查找元素

WebElement.findElement方法是在WebDriver范围下查找元素
EN

Stack Overflow用户
提问于 2017-10-12 20:46:23
回答 1查看 2.6K关注 0票数 2

我有下面的HTML代码,我正在尝试运行我的selenium测试

代码语言:javascript
复制
<html>

<head></head>

<body>
  <table id="Original">
    <tr>
      <td>Original-11</td>
      <td>Original-12</td>
      <td>Original-13</td>
    </tr>
    <tr>
      <td>Original-21</td>
      <td>Original-22</td>
      <td>Original-23</td>
    </tr>
    <tr>
      <td>Original-31</td>
      <td>Original-32</td>
      <td>Original-33</td>
    </tr>
  </table>

  <br/><br/>

  <table id="Duplicate">
    <tr>
      <td>Duplicate-11</td>
      <td>Duplicate-12</td>
      <td>Duplicate-13</td>
    </tr>
    <tr>
      <td>Duplicate-21</td>
      <td>Duplicate-22</td>
      <td>Duplicate-23</td>
    </tr>
    <tr>
      <td>Duplicate-31</td>
      <td>Duplicate-32</td>
      <td>Duplicate-33</td>
    </tr>
  </table>
</body>

</html>

selenium java代码如下所示:

代码语言:javascript
复制
public static void main(String[] args) throws Exception
    {
        System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/src/test/drivers/chromedriver.exe");

        WebDriver drv = new ChromeDriver();
        drv.get("C:/Users/MYUserName/git/er_test/SeleniumTestHtml.html");

        WebElement tableElement = drv.findElement(By.id("Duplicate"));
        WebElement rowElement = tableElement.findElement(By.xpath("//tr[2]"));
        WebElement cellElement = rowElement.findElement(By.xpath("//td[2]"));
        System.out.println(rowElement.getText());
        System.out.println(cellElement.getText());

        drv.close();
        drv.quit();

    }

我预期结果如下:

复本-21复本-22复本-23

重复-22

但我得到的结果是:

原件-21-22原件-23

原件-12

我在这里做错什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-12 21:47:05

您的问题是,//会让您返回到顶级根元素的搜索。

这意味着

代码语言:javascript
复制
WebElement rowElement = tableElement.findElement(By.xpath("//tr[2]"));

就像

代码语言:javascript
复制
WebElement rowElement = driver.findElement(By.xpath("//tr[2]"));

如果只需要在当前元素中搜索,则应使用

代码语言:javascript
复制
WebElement rowElement = tableElement.findElement(By.xpath(".//tr[2]"));
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46718613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档