2014-10-03 109 views
1

我有以下問題: 我有一個使用硒(版本:2.43.0)的Java代碼來解析我的登錄網頁(我無法更改)與Firefox的驅動程序。 在我的Windows機器上 - 我能夠得到我的元素,並使用sendKeys填充,然後使用安裝的Firefox提交表單。ElementNotVisibleException只在亞馬遜EC2實例與硒,Firefox和xvfb運行

我現在感興趣搬到ec2。我創建了一個亞馬遜實例 (os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.35-43.137.amzn1.x86_64', java.version: '1.7.0_51')。

爲了運行硒,我安裝了Firefox,使用this blog post進行了微小的修改(安裝了firefox版本:32.0.3,而不是原始腳本),並且我使用xvfb-run來運行firefox。

的頁面似乎在機器上加載,我要尋找的元素被發現(或者至少看起來是這樣),但是當我嘗試element.sendKeys("testUserName");

我得到以下異常: org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with 其他答案建議使用Actions actions = new Actions(driver); actions.moveToElement(element).build().perform();
但這並沒有幫助。我仍然得到相同的例外。

任何想法?

+0

你有沒有找到一個解決這個?我想我有同樣的問題:http://stackoverflow.com/questions/35607021/elementnotvisibleexception-only-in-virtual-display – Sheena 2016-02-24 16:03:51

回答

1

如果等待時間結束,您知道該元素永遠不可見,我會嘗試等待元素在與之交互之前變爲可見。

即:

new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(yourByLocator); 
+0

這是一個好主意:)確實它超時。由於我使用的元素在任何時候都應該是可見的,所以我不知道可能是什麼導致了這種情況,如果頁面沒有被完全加載,或者我的代碼中有一個錯誤(這不是很輕微,因爲在窗口中的代碼相同)我期望find元素崩潰 - 在得到這個之前。我希望這不會發生,因爲內存緩衝區..任何想法如何解決它? – krakover 2014-10-04 00:18:09