java - 如何自动完成文本框

标签 java selenium autocomplete ui-automation

我正在尝试自动化一个测试用例,其中文本框提供智能来自动完成该字段。 请找到以下自动完成文本框的链接: http://demoqa.com/autocomplete/

请找到我写的代码

  dr.findElement(By.id("tagss")).sendKeys("a");
  Thread.sleep(300);
//  dr.findElement(By.id("ui-id-53")).click();
  Actions act = new Actions(dr);
  act.moveToElement(dr.findElement(By.id("ui-id-53"))).click().build().perform();

此代码无法在浏览器提供的智能中查找和定位选项。请帮忙。

最佳答案

您无法在 DOM 中找到自动建议的选项元素,因为这些选项的 HTML ID 在页面重新加载后发生变化。

在这种情况下,您需要使用 XPath 来识别元素。假设您想单击 Java 自动建议选项,那么您的代码应该是 -

System.setProperty("webdriver.chrome.driver","C:\\WebDriver\\TestAutomation\\grid\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://demoqa.com/autocomplete/");
driver.manage().window().maximize();
driver.findElement(By.id("tagss")).sendKeys("a");
WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.id("ui-id-1"))));
WebElement javaOption = driver.findElement(By.xpath(".//li[@class='ui-menu-item' and text()='Java']"));
javaOption.click();

使用 Thread.sleep(); 不是一个好的做法

希望这对您有帮助。

关于java - 如何自动完成文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47999178/

相关文章:

java - JAVA中如何组合两种方法?

java - 将 Activity 添加到 Google 日历所需的要求?

java - 如何从网页中提取 id 列表?

java - 在 Selenium 的单个窗口中更改不同页面之间的驱动程序焦点

java - 是否可以通过编程方式确定是否使用了 W3C 操作命令?

c# - Selenium WebDriver - Chrome - C# - 无法以隐身模式启动 selenium 浏览器作为最大化浏览器

javascript - typeahead.js : How to remove value when value not in suggestion

html - 如何禁用 iOS Chrome 密码/信用卡自动填充?

jquery - 如何使用 Rails 找到 JQuery 自动完成匹配项时显示响应

java - 在java中的菜单之间跳转