【发布时间】:2012-03-01 09:41:59
【问题描述】:
我有一个文本框,当我在其中输入一个字母“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");
【问题讨论】:
-
您能否使用适用于 Google 搜索字段的示例代码更新您的问题?
-
我已经添加了示例谷歌搜索代码。虽然最后一步不是必需的,因为谷歌会自动带来搜索结果。但是,如果您尝试使用 kayak.com,那么类似的代码将无法用于搜索机场。
-
添加了皮划艇样品。通过发送 key 's',我们应该看到以字母 S 开头的机场。
标签: java selenium autocomplete webdriver