2016-12-28 93 views
0

我有一個telerik搜索框,我輸入「acc」,它會自動彈出以'acc'開頭的項目,並從該列表中選擇'Acabose 」。如何使用硒webdriver c彈出下拉列表中選擇一個選項#

C#代碼:

driver.FindElement(By.Id("ctl00_ctl14_tsfSearch_Input")).Click(); 
driver.FindElement(By.Id("ctl00_ctl14_tsfSearch_Input")).SendKeys("acc"); 

和HTML:

<div class="rsbSlide"> 
    <div class="rsbPopup"> 
     <ul class="rsbList"> 
      <li class="rsbListItem">Acabose</li> 
      <li class="rsbListItem">Acabose 100mg</li> 
     </ul> 
    </div> 
</div> 
+1

請仔細閱讀[問]。請提供您已嘗試的代碼和執行結果,包括任何錯誤消息等。 – JeffC

+0

您是否面臨任何錯誤?也提到這一點 – NarendraR

回答

0

你可以得到所有可見的李項目,並遍歷它們,直到你找到你想要的文字。 (注:我在Java硒工作,但其原理是在C#中相同)

// code to enter the search goes here. 
List<WebElement> rsbListItems = driver.findElements(By.className("rsbListItem"); 
for (int i = 0; i < rsbListItems.size(); i++) { 
    if (listItem.getText() == "Acabose 100mg") { 
     listItem.click(); 
    } 
} 

或者,如果你知道Acabose總是(永遠)要在列表中的第二項,可以通過索引訪問它。

0

嘗試下面的代碼片段

List<WebElement> telerikItemList = driver.findElements(By.className("rsbListItem"); 
for (WebElement telerikItemOpt: telerikItemList) { 
    if (telerikItemOpt.getText().equals("Acabose 100mg") { 
    telerikItemOpt.click(); 
    break; 
    } 
} 
相關問題