如何使用列表选择为自动完成文本框编写selenium代码

时间:2017-12-08 05:56:19

标签: selenium selenium-webdriver

我正在尝试为以下HTML源代码编写 Selenium 代码。

此字段是输入选择的自动填充字段

<input id="ctl00_ContentPlaceHolder1_txtBranch" class="textbox_service ui-autocomplete-input" name="ctl00$ContentPlaceHolder1$txtBranch" style="width: 200px;" onblur="return branch();" onchange="return CheckBranchName();" tabindex="6" autocomplete="off" type="text"/>

任何人都可以帮我写代码吗?

附加网页元素截图。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

这是我对您提供的信息所能做的最好的事情。如果您可以显示自动填充列表的HTML,那就太棒了。你没有指定任何语言,所以我会假设它是Java。

WebElement field = driver.findElement(By.id("ctl00_ContentPlaceHolder1_txtBranch"));
field.click();
field.sendKeys(Keys.SPACE);

List<WebElement> items = driver.findElements(By.tagName("li");

for (int i=0; i<items.size();i++) {
WebElement elementYouWantToClick = items.get(i);
     String x = elementYouWantToClick.getText();
     if(x.contains("TextThatIsInYourElementYouWantToChoose")){
         elementYouWantToClick.click();
}

我现在可以利用这些有限的信息做到最好。

答案 1 :(得分:0)

根据HTML点击(选择)自动完成文字,您可以使用以下代码行:

new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='textbox_service ui-autocomplete-input' and contains(@id,'_ContentPlaceHolder') and contains(@name,'txtBranch')]"))).click();