java - 使用 Selenium webdriver 测试自动完成

标签 java selenium autocomplete webdriver

我有一个文本框,当我在其中输入一个字母“s”时,它会显示结果列表(如谷歌搜索)。

我正在使用最新的 selenium webdriver 和 java。

我试过了

sendKeys("s"),

JavascriptLibrary jsLib = new JavascriptLibrary();

jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onkeyup");

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onblur");

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onclick");

    jsLib.callEmbeddedSelenium(driver, "doFireEvent", driver.findElement(By.id("assetTitle")), "onmouseup");


driver.findElement(By.id("assetTitle")).sendKeys(Keys.ENTER);

即使在每个步骤之后添加等待,这些都不起作用。

有什么建议吗?

谢谢。

更新:-

WebDriver driver = new FirefoxDriver();
    driver.get("http://www.google.com");
    WebElement query = driver.findElement(By.name("q"));
    query.sendKeys("s");
driver.findElement(By.xpath("//table[@class='gssb_m']/tbody/tr/td/div/table/tbody/tr/td/span")).click();
    driver.findElement(By.name("btnG")).click();

更新 2:-

WebDriver driver = new FirefoxDriver();
    driver.get("http://www.kayak.com/");
    WebElement query = driver.findElement(By.name("destination"));
    query.sendKeys("s");

更新 3:- 我尝试使用 Selenium 1,fireevent 方法通过将参数作为“keydown”传递来工作。这应该是目前的临时解决方法。

WebDriver driver = new FirefoxDriver();
    driver.get("http://www.kayak.com/");
    DefaultSelenium sel = new WebDriverBackedSelenium(driver,"http://www.kayak.com/");

    sel.type("//input[@id='destination']", "s");
    sel.fireEvent("//input[@id='destination']", "keydown");

最佳答案

我找到了一个解决方法。我的问题是:

  1. Selenium 在自动建议位置字段中输入“Mandaluyong”
  2. 自动建议字段与匹配的选项一起出现
  3. 然后 selenium 让自动建议下拉菜单保持打开状态,而不是选择匹配的选项。

我所做的是:

        driver.findElement(By.name("fromLocation")).sendKeys("Mandaluyong");
        driver.findElement(By.name("fromLocation")).sendKeys(Keys.TAB);

这是因为在手动测试中,当我尝试按 TAB 键时,系统做了两件事:

  1. 从自动建议下拉列表中选择匹配的选项
  2. 关闭自动建议下拉菜单

关于java - 使用 Selenium webdriver 测试自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9202061/

相关文章:

java - 如何判断为什么在 Java 中文件删除失败?

java - 如何为 java 中的绘制方法分配每秒限制,该方法根据资源可用性重新绘制自身?

java - 调用 Enum.<T>valueOf() 给出未经检查的强制转换警告,尽管 T 被声明 <T extends Enum<T>>

java - Netbeans 不断重启

selenium - 阻止具有多个执行程序的节点接受更多作业,直到给定作业完成

css - Ajax 控件工具包自动完成下拉垂直未对齐

java - 如何通过Selenium和Page Factory实现AjaxElementLocatorFactory?

python - 如何使用 BeautifulSoup 从网站获取 href 链接

c# - wpf 中的自动完成框焦点

python - argparse(和已弃用的 optparse)如何在 bash 中响应 python 程序名称后的 'tab' 按键?