У меня есть этот xpath: //*[@id="someId::button"]
При нажатии на него отображается выпадающий список значений.
Теперь я знаю, что все элементы в списке имеют такой идентификатор:
//*[@id="someId--popup::popupItemINDEX"]
где INDEX - это число от 1 до любого количества параметров.
Я также знаю значение, которое я должен щелкнуть.
Один вопрос будет: поскольку я всегда буду знать идентификатор кнопки, которая генерирует раскрывающийся список, могу ли я получить все элементы в раскрывающемся списке с помощью метода повторно использовать? (Мне нужно взаимодействовать с более чем одним выпадающим списком)
Как я думал об этом: получить корень исходного идентификатора, как в:
//*[@id="someId
затем добавьте остальные: --popup::popupItem
. Мне также нужно добавить индекс, и я подумал, что могу использовать блок try (чтобы получить хотя исключения, когда я даю более ожидаемый индекс):
for(int index=1;index<someBiggerThanExpectedNumber;index++){
try{
WebElement aux= driver.findElement(By.xpath(builtString+index+"\"]"));
if(aux.getText().equals(myDesiredValue))
aux.click();
}catch(Exception e){}
}
Обратите внимание, что я использую webdriver api и java.
Я хотел бы знать, будет ли это работать, и если есть более простой способ сделать это, учитывая исходную информацию, которую я имею.
EDIT: способ, которым я предлагал работать, но для более простого решения должен быть рассмотрен принятый ответ