2012-04-11 51 views
0

我是硒的新手,我在一個下拉列表中找到一個項目,並且通過從另一個下拉列表中選擇項目來動態綁定,我感到很震驚。我的示例代碼是:無法在硒中找到動態下拉項目RC

selenium.Open(「.../Default.aspx」);

selenium.WindowMaximize(); (「name = ddCountry」);點擊(「name = ddCountry」); (「// div [@ id ='ddCountry_DropDown']/div/ul/li [1]」);

str = selenium.GetText(「// div [@ id ='ddCountry_DropDown']/div/ul/li [1]」);

selenium.Type(「name = ddCountry」,strValue); (「name = ddCity」);點擊(「name = ddCity」); (「// div [@ id ='ddCity_DropDown']/div/ul/li [1]」);

str = selenium.GetText(「// div [@ id ='ddCity_DropDown']/div/ul/li [1]」);

selenium.Click(「id = btnRedirect」);

selenium.WaitForPageToLoad(「30000」);

在上面的代碼中,我想在國家下拉列表中選擇一個項目後嘗試這樣做。在selectionchange事件觸發的城市下拉菜單上,有幾件物品受到綁定。我的問題是「selenium.Click(」// div [@ id ='ddCity_DropDown']/div/ul/li [1]「);」 當這段代碼執行時出現錯誤,如「Element // div [@id ='ddCity_DropDown']/div/ul/li [1]找不到「。請提前提前爲此問題提供解決方案。

問候, Venkat

回答

0

這是因爲城市下拉是由一國債券降了下來。您需要在國家下拉城市下拉菜單後添加一些有意等待。

你可以這樣你的數據庫代碼後,誘導Java中的第一個測試情況下,一些等待:

長END3 = System.currentTimeMillis的()+ 6000;

while(System.currentTimeMillis()<end3) 
    { 
     // Do nothing here Just time pass. 
    } 

這將確保Java代碼等待6000毫秒