2016-12-28 89 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; 
    } 
} 
相关问题