[英]Test autocomplete with Selenium webdriver
I have a text box in which when I type one letter say 's' , it displays a list of results ( like google search) .我有一个文本框,当我在其中输入一个字母 say 's' 时,它会显示一个结果列表(如谷歌搜索)。
I am using latest selenium webdriver with java.我正在使用最新的 selenium webdriver 和 java。
I have tried我努力了
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);
None of these work even after adding wait after each of the steps.即使在每个步骤之后添加等待后,这些都不起作用。
Any suggestions?有什么建议么?
Thanks.谢谢。
Update :-更新 :-
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();
Update 2 : -更新 2 :-
WebDriver driver = new FirefoxDriver();
driver.get("http://www.kayak.com/");
WebElement query = driver.findElement(By.name("destination"));
query.sendKeys("s");
Update 3 :- I tried with Selenium 1 and the fireevent method works by passing parameter as 'keydown'.更新 3:- 我尝试使用 Selenium 1,fireevent 方法通过将参数作为“keydown”传递来工作。 This should be a temporary workaround for now.
这应该是暂时的解决方法。
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");
I found a workaround about this.我找到了一个解决方法。 My problem was:
我的问题是:
What I did was:我所做的是:
driver.findElement(By.name("fromLocation")).sendKeys("Mandaluyong");
driver.findElement(By.name("fromLocation")).sendKeys(Keys.TAB);
This is because on a manual test, when I try to press TAB key, two things were done by the system:这是因为在手动测试中,当我尝试按 TAB 键时,系统做了两件事:
I believe you are testing auto-suggest here (not auto-complete)我相信你在这里测试自动建议(不是自动完成)
Steps I follow -我遵循的步骤 -
This should be a temporary workaround for now.这应该是暂时的解决方法。
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");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.