我有一个文本框,当我输入一个字母说'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,并且通过将参数传递为'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");
答案 0 :(得分:3)
我找到了解决此问题的方法。我的问题是:
我做的是:
driver.findElement(By.name("fromLocation")).sendKeys("Mandaluyong");
driver.findElement(By.name("fromLocation")).sendKeys(Keys.TAB);
这是因为在手动测试中,当我尝试按TAB键时,系统完成了两件事:
希望这有帮助。
答案 1 :(得分:1)
我相信你在这里测试自动建议(不是自动完成)
我遵循的步骤 -
答案 2 :(得分: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");