我有一个telerik搜索框,我输入了' acc'它会自动弹出以' acc'开头的项目。从那个列表中我想选择' Acabose'。
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>
答案 0 :(得分:0)
您可以获取所有可见的li项并迭代它们,直到找到包含所需文本的选项。 (注意:我在Java中使用Selenium,但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始终(并且永远)将成为列表中的第二项,您可以通过索引访问它。