2012-07-05 89 views
1

我正在測試的網頁上的下拉選項取決於爲以前的文本框和選項提供的值(例如,基於指定的貨幣和金額,產品的下拉列表將顯示適當的沒有值時,提供的下拉列表是空白的。)。Selenium無法在下拉列表中加載動態選項

現在,儘管我已經提供了貨幣和金額的值,但產品下拉菜單仍然是空白的。它不會根據提供的早期數據獲取過濾值。我正在使用Selenium服務器(2.24.1)並使用TestNG在Eclipse中使用Java編寫腳本並在IE8上進行測試。

檢查時,下拉菜單與其他菜單沒有區別,只有其選項基於頁面上其他元素的值進行更改。該Web應用程序是用Java開發的(Wicket framework)。

硒代碼:

selenium.select(ownerBranch, "label=4521 - Branch one"); 

selenium.select(currency, "label=SEK - Swedish kronor"); 
Thread.sleep(sleep); 

selenium.type(amountSantioned,"100000"); 
Thread.sleep(sleep); 

selenium.click(chooseLoanTermBymatDate); 
Thread.sleep(sleep); 

timeNow=Calendar.getInstance(); 
timeNow.add(Calendar.DATE,+360);selenium.type(maturityDate,dateformat.format(timeNow.getTime())); 
Thread.sleep(sleep); 

selenium.type(amountSantioned,"100000"); 
Thread.sleep(sleep); 

selenium.select(serviceDelChannel, "label=BackOffice"); 
Thread.sleep(sleep); 
selenium.select(product, "label="); 
Thread.sleep(sleep*2); 
selenium.select(product,"label=LN7292 - Consumer loan for Year2026"); 
Thread.sleep(sleep); 
+0

該頁面在內部如何工作?什麼技術可以創造價值?任何檢測工具對你的元素的HTML說了什麼?它是空白的,那裏的元素?您能否向我們展示您的Java代碼的相關部分以及元素的HTML代碼?也!你嘗試過其他瀏覽器嗎? – 2012-07-05 10:15:15

+1

好吧,我會嘗試與您的改進和恢復你的狀態 謝謝 – 2012-07-05 10:24:01

+0

我試着用IE8。但它仍然不起作用。當檢查下拉菜單與其他菜單沒有區別時,只有其選項根據頁面上其他元素的值進行更改。我的應用程序是在Java(Wicket框架)中開發的。我在這裏粘貼我的測試腳本的java代碼:它被粘貼成兩部分。請仔細查看 – 2012-07-05 10:33:20

回答

0

我不打算嘗試重現該問題(如果你可以點我有類似的行爲公開可見的網站,我會測試它),所以我m只是在這裏猜測:

因爲Selenium RC是用純Javascript編寫的,而且「只」發射change關於從下拉列表中選擇值的事件,Wicket可能正在等待其他事情或依賴完全不同的機制。

可嘗試:

  • 使用硒的webdriver。 Selenium RC已經被棄用了一年多了,因爲它有嚴重的技術限制(你可能碰到了一個),現在WebDriver已經解決了這個問題。此外,你不會再次使用Thread.sleep()(儘管我幾乎可以肯定它可以在這裏被刪除,大多數情況下)。這個解決方案是最痛苦的,但幾乎可以保證運行良好,因爲WebDriver的行爲像一個真正的用戶。
  • 致電selenium.fireEvent()與您交互的所有input元素。 Useful events可能是focus,blur,甚至可能是它們之間的click
  • 在每次更改下拉列表後,致電selenium.keyPressNative(String.valueOf(KeyEvent.VK_ENTER))(按本機輸入)。如果在此之前更改的下拉列表不是重點,那麼您可能需要預先登錄focus()
  • 試圖模擬用戶的行爲儘可能地接近,而不是使用JS方法的痛苦的樣子:而不是使用select(),儘量focus()下拉元素,然後通過pressing下選擇它的一個選項箭頭反覆,然後輸入
+0

非常感謝您的及時幫助。 – 2012-07-06 12:05:18

+0

我最近6個月一直在使用硒服務器,移動到webdriver並不麻煩。其實我不知道如何使用eclipse中的testNG webdriver的作品。 – 2012-07-06 12:14:20

+0

要獲得區別和基本示例,請參閱http://stackoverflow.com/questions/4007819/what-is-the-difference-between-seleniums-remote-control-vs-webdriver和http:// stackoverflow。 COM /問題/ 10285641 /硒RC-architechture和硒,網絡驅動程序architechture-差異。此外,在您嘗試解決問題後,請務必告訴我它是如何工作的:)。 – 2012-07-06 17:21:01

相關問題