我有两个下拉列表。第二个是空的,直到从第一个选择。但是,当使用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()));
}
}
}
答案 0 :(得分:0)
我希望您正在使用的Web应用程序使用onblur作为第一个选择下拉列表。最好关注下一个下拉列表,首先选择在第一个中触发javascript。只需尝试在webdriverwait上面包含以下代码,即可获得第二个选择下拉列表。
include('file.phar');
祝你好运!