搜索锚标记

时间:2016-07-07 15:55:54

标签: java html selenium

我想在driver.findElement(by.id("menu-news-menu-item"))driver.findElements(by.id("menu-news-menu-item"))找到一些导航栏项目。由于某种原因它找不到它们。我已经验证网站上的ID是正确的,但仍然无法找到。我知道还有其他方法可以获取信息,但我的理解是使用id是寻找元素的最佳方式。下面我已经包含了我想要搜索的HTML片段。如果我需要提供更多信息,请告诉我。

<div class="navbar-collapse collapse">
  <li>
    <a id="menu-news-menu-item" href="/novus/news">News</a>
  </li>
</div>

1 个答案:

答案 0 :(得分:3)

通过查看HTML,我发现了一个潜在的问题。可能会有更多。

您发布的顶级DIV有一个班级navbar-collapse collapse。这向我表明DIV是可折叠的,并且当前已折叠,这意味着它的任何子项都将被隐藏。 Selenium旨在允许用户仅与可见元素进行交互。这意味着,如果您按ID搜索A标记,并且它是当前已折叠的DIV的子代,则Selenium将无法找到它。在搜索A标签之前,您需要做的是取消隐藏它。我不确定如何做到这一点,但可能涉及点击可折叠的DIV

有了这些信息,请尝试自己完成剩下的工作。您应该能够调查页面HTML,尝试一些代码,看看会发生什么。如果它不起作用你就会卡住。回来发布一些周围的HTML,你尝试的代码,结果(错误信息等),我们会尽力帮助你。