Ho una casella di testo in cui quando digito una lettera pronuncia "s", visualizza un elenco di risultati (come la ricerca su google).Test completamento automatico con selettore web Selenium
Sto utilizzando l'ultimo web selector con java.
ho cercato
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);
nessuno di questi lavori, anche dopo l'aggiunta di attesa dopo ciascuna delle fasi.
Qualche suggerimento?
Grazie.
Aggiornamento: -
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();
Aggiornamento 2: -
WebDriver driver = new FirefoxDriver();
driver.get("http://www.kayak.com/");
WebElement query = driver.findElement(By.name("destination"));
query.sendKeys("s");
Update 3: - ho provato con selenio 1 e il metodo funziona FireEvent passando parametro come 'keydown'. Questa dovrebbe essere una soluzione temporanea per ora.
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");
È possibile aggiornare la domanda con un codice di esempio che funziona con il campo di ricerca di Google? – djangofan
Ho aggiunto il codice di ricerca di esempio di Google. Anche se l'ultimo passaggio non è richiesto, Google porta automaticamente i risultati della ricerca. Ma se provi per kayak.com, un codice simile non funzionerà per la ricerca di aeroporti. – user1198308
Campione di kayak aggiunto. Inviando la chiave "s", dovremmo vedere gli aeroporti che iniziano con la lettera S. – user1198308