Ich habe zwei Dropdown-Listen. Die zweite ist leer bis eine Auswahl von der ersten getroffen wird. Wenn jedoch die erste mit Selen unter Verwendung von select.selectByIndex()
oder einer der Auswahlmethoden ausgewählt wird, wird die zweite Dropdownliste nicht aufgefüllt.Selen nicht dynamisch aktualisieren wählen
public class ScraperTwo {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "/home/user/chromedriver");
WebDriver driver = new ChromeDriver();
driver.get("https://www.alboautotrasporto.it/web/portale-albo/imprese-iscritte");
Select firstDropDown = new Select(driver.findElement(By.id("_impreseiscritte_WAR_serviziportalealbo100SNAPSHOTesercizioalbo_provinceList")));
firstDropDown.selectByIndex(10);
(new WebDriverWait(driver, 30)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
Select innerSelect = new Select(d.findElement(By.id("_impreseiscritte_WAR_serviziportalealbo100SNAPSHOTesercizioalbo_comuniList")));
return innerSelect.getOptions().size() > 0;
}
});
WebElement secondDropDown = driver.findElement(By.id("_impreseiscritte_WAR_serviziportalealbo100SNAPSHOTesercizioalbo_comuniList"));
List<WebElement> allOptions = secondDropDown.findElements(By.tagName("option"));
for(WebElement option: allOptions) {
System.out.println(String.format("Value is %s", option.getText()));
}
}
}
Ich bin nicht als Antwort enthalten, wie ich es nicht konsequent arbeiten konnte ... Arbeitete nur 2 von 5 Mal ... Versuchen Sie mit diesem Code ... ChromeOptions chop = new ChromeOptions(); chop.addArguments ("Testtyp"); chop.addArguments ("startmaximiert"); chop.addArguments ("- allow-running-unsecure-content"); WebDriver-Treiber = neuer ChromeDriver (chop); Außerdem habe ich 5 Sekunden lang einen Thread.sleep eingefügt, bevor ich auf das erste Dropdown geklickt habe ... – Grasshopper