2013-03-08 44 views
0

我使用的Java 7,火狐,硒2.30 0和正在以下錯誤:ElementNotVisibleException

ElementNotVisibleException: Element is not currently visible and so may not be interacted with

現在,這是我在做什麼:

driver.findElement(By.xpath("//*[@id='Menu1']/li[3]/a")).click(); 
driver.findElement(By.xpath("//*[@id='Menu1']/li[3]/ul/li[5]/a")).click(); 

我運行通過調試模式與IntellIJ,所以我不認爲這是一個時間問題,因爲我很慢。第一個查找元素效果很好,我可以看到菜單下拉菜單中的5項到select/click。現在,當我進入第二步時,出現錯誤。爲了讓WebElement對驅動程序可見,我需要做些什麼嗎?

+0

當您嘗試選擇li [4]/a或li [3]/a時會發生什麼?你有沒有檢查過你的xpath? – Farlan 2013-03-09 01:54:19

+0

非常感謝您的輸入。我做了一些更多的搜索,我應該做的事情開始,並發現這一點:http://stackoverflow.com/questions/6245690/mouse-hover-on-webelement-using-selenium-2-in-java這似乎讓我想去的地方! – cbohannon 2013-03-09 15:03:32

回答

0

從下拉列表中選擇元素有時會發生問題。有各種不同的解決方案,檢查工作的東西爲你:

1-使用clickAt

2 - 使用fireevent(focus),然後單擊。有時它發生在後臺的某個元素正在被加載,當它被加載時,焦點在那裏移動,因此elementNotVisible錯誤。

3-使用mouseDownRight

檢查出來。如果您有更多觀察結果,請更新問題。

0

甲陳舊元件參考拋出異常在兩種情況之一,比第二首先是更常見的: 的元件已被完全刪除。 元素不再附加到DOM。

這樣做的最常見的原因是該網頁的內容是已被刷新的一部分,或用戶已經離開導航到另一個頁面。一個不常見的,但仍然是常見的原因是JS庫刪除了一個元素,並將其替換爲具有相同ID或屬性的元素。在這種情況下,雖然替換元素可能看起來相同,但它們是不同的;駕駛員無法確定替換件實際上是預期的。

如果元素已換上一個相同,一個有用的策略是再次擡頭的元素。如果您自動執行此操作,請注意,您可能會將測試打開爲競賽狀態和潛在的片狀。例如,給定代碼

WebElement element = driver.findElement(By.id("example")); 
String text = element.getText(); 
+0

請注意,[只提供鏈接的答案](http://meta.stackoverflow.com/tags/link-only-answers/info),所以答案應該是搜索解決方案的終點(vs.而另一個引用的中途停留時間往往會隨着時間推移而過時)。請考慮在此添加獨立的摘要,並將鏈接保留爲參考。 – kleopatra 2013-12-30 17:58:26

相關問題