我有一个文本框,当我输入一个字母说“ s”时,它会显示结果列表(例如google搜索)。
我正在使用带有Java的最新Selenium Webdriver。
我努力了
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");
目前,这应该是一个临时解决方法。