Der folgende Code prüft eine autocomlete Feld einer Webseite:Wie fülle ich ein Autocomplete-Eingabefeld mit Selenium? (Warum eine automatisierte Eingabe nicht geladen zur automatischen Vervollständigung Optionen, aber eine manuelle Eingabe tut?)
public class Test {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver","chromedriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www..............com");
driver.switchTo().frame("mainFrame");
WebDriverWait waitst = new WebDriverWait(driver, 120);
waitst.until(ExpectedConditions.visibilityOfElementLocated(By.name("sourceTitle")));
WebElement sourceTitle = driver.findElement(By.name("sourceTitle"));
WebElement small = driver.findElement(By.cssSelector("li#nameExampleSection label + small"));
sourceTitle.sendKeys("Times");
Thread.sleep(5000);
Actions actions = new Actions(driver);
actions.click(small).perform();
}
}
Warum funktioniert die Autosuggest Box geladen? WICHTIG: versuchen, einzugeben "..........." manuell ... die Autocomplete-Box wird perfekt in Ordnung !!! Also, warum funktioniert nicht cssSelector
, warum lädt es nicht die Autocomplete-Box?
Wie kommt es, dass eine automatisierte Eingabe keine Autocomplete-Optionen erlaubt, ABER eine manuelle Eingabe?
PS: Ich habe auch versucht fireEvent
, sendKeys
aber nichts funktioniert.
Haben Sie versucht, andere Browser ??.Auch warum wartest du auf 0 Sekunden im Web-Treiber warten. – Madusudanan
Vielen Dank für die Antwort. 1) Explizites Warten hat keine Probleme, ich kann '(driver, 120)' verwenden. Die Seite wird geladen. Das Problem tritt auf, wenn "Associated Press, The" in das Eingabefeld gelangt ... Manuell - kein Problem, aber da es dort automatisch abläuft - würde es die Optionen einfach nicht laden. 2) Ich habe auch FireFox ausprobiert - keine Verbesserungen. – Buras
Der Titel war sehr vielversprechend, aber ich sehe nicht, wie die akzeptierte Antwort die Tatsache anspricht, dass sendKeys() die Autocomplete-Dropdown-Liste nicht so erscheinen lässt, als dann dieselbe Texteingabe manuell eingegeben wurde. Und warum haben Sie keine echte URL angegeben, an der Sie das problematische Element untersuchen könnten? –