2016-07-07 127 views
0

我有几个导航栏项目,我试图找到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> 
+0

有几个原因可能导致失败。你有'NoSuchElementException'吗? – Abaddon666

+2

请包括错误和您的代码尝试 – user2272115

+0

我不知道发生了什么,但是当我去跑步,所以我可以抓住错误信息,它正常与'driver.findElement(by.id(“menu-news-menu -Item“))'。尽管感谢您的快速回复。我正在用findElement获得'NoSuchElementException'。我想知道如果我只是需要添加更多的时间来加载页面。 –

回答

3

从看你的HTML我看到一个潜在的问题。可能还有更多。

您发布的最高等级DIV有一个类navbar-collapse collapse。这表明DIV是可折叠的,目前已折叠,这意味着它的任何孩子都将被隐藏起来。 Selenium旨在让用户只能与可见元素进行交互。这意味着如果您按ID搜索您的A标记,并且它是当前崩溃的DIV的孩子,Selenium将无法找到它。在搜索A标签之前,您需要做的是取消隐藏它。我不知道如何做到这一点,但它可能涉及点击可折叠的DIV

有了这个信息,试着找出你自己的其余部分。你应该能够调查页面HTML,尝试一些代码,并看看会发生什么。如果它不起作用,你会卡住。回来再发布一些周围的HTML,你试过的代码和结果(错误信息等),我们会尽力帮助你。