У меня есть два раскрывающихся списка. Второй пуст, пока не будет сделан выбор из первого. Однако, когда первый выбран с селеном, используя select.selectByIndex()
или любой из методов выбора, второй раскрывающийся список не заполняется.Selenium не обновляет динамический выбор
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()));
}
}
}
Я не включаю в качестве ответа, поскольку я не мог заставить его работать последовательно ... Работал только 2 из 5 времени ... Попробуйте с этим кодом ... ChromeOptions chop = new ChromeOptions(); chop.addArguments ("тест-типа"); chop.addArguments ("старт-максимизируется"); chop.addArguments ("- позволяют выполняющихся-небезопасный-контент"); WebDriver driver = новый ChromeDriver (chop); Также я ввел Thread.sleep из 5 секунд, прежде чем щелкнул первый раскрывающийся список ... – Grasshopper