2016-07-07 74 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,你試過的代碼和結果(錯誤信息等),我們會盡力幫助你。