У меня очень странная проблема.Используя селен, я пишу простой веб-бот, чтобы заполнить страницу данными, отправить их и собрать результаты.
Я заполняю все формы без проблем, но сначала мне нужно ввести почтовый индекс,чем щелкнуть где-нибудь еще для AJAX, чтобы перечислить все возможности, затем выбрать собственную опцию (я хочу всегда выбирать первую).
Но моя проблема в том, что я просто не могу выбрать ее.Я заполняю ZIP, сам щелкаю по списку опций, жду, чтобы "пожалуйста, выберите" сообщение, чтобы потеряться (к этому времени мой выбор уже должен быть там) и затем выбираю его.Я пробовал option.click (), я пробовал selectByVisibleText (), даже не рекомендовал setSelected ().Каждый раз ничего не происходит.Все, что я вижу в FF, это выпадающий список опций, с первой пометкой, но это все.Я пробовал много способов, но безуспешно.
Вот мой код последней попытки:
ZIPCode = driver.findElement(By.id("formparam_data2_zip")); //get and fill ZIP
ZIPCode.sendKeys(ZIP);
address = driver.findElement(By.name("formparam_data2_zip_id")); // click to fire AJAX
address.click();
(new WebDriverWait(driver, 20)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) { // wait until AJAX shows results
WebElement elm = d.findElement(By.id("formparam_data2_zip_id"));
List<WebElement> options = elm.findElements(By.tagName("option"));
for(WebElement w : options){
if(w.getText() != "Prosím, vyberte."){
return true;
}}
return false;
}});
List<WebElement> options = address.findElements(By.tagName("option"));
options.get(0).click(); // click first option - ! this failes !
phaseTwoBtn = driver.findElement(By.id("formparam_data2_next")); // than submit...
phaseTwoBtn.submit();