使用Selenium webdriver测试自动完成

Yas*_*ash 8 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);
Run Code Online (Sandbox Code Playgroud)

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

有什么建议?

谢谢.

更新: -

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();
Run Code Online (Sandbox Code Playgroud)

更新2: -

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

更新3: - 我尝试使用Selenium 1,并且通过将参数传递为'keydown'来实现fireevent方法.这应该是暂时的解决方法.

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");
Run Code Online (Sandbox Code Playgroud)

Yas*_*ash 0

目前这应该是一个临时解决方法。

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");
Run Code Online (Sandbox Code Playgroud)