В рамках более крупного теста я должен нажать определенную кнопку без назначенного идентификатора.После просмотра и опробования различных других решений на stackoverflow я подумал просто пройтись по всем кнопкам - а потом подумать о том, как выбрать его по отдельности и щелкнуть по нему.Вот код:
List<WebElement> buttons = driver.findElements(By.cssSelector(".btn.btn-primary"));
for (WebElement b:buttons) {
System.out.println(b.getTagName());
System.out.println(b.getText());
}
Кнопка динамически генерируется с помощью Jquery.Настоящая веб-страница представляет собой только коллекцию ссылок .js.Вот код, который я получил от Inspect Element:
<div class="modal-footer">
<button class="btn btn-primary" type="button" data-bb-handler="yes">Task Status</button>
<button class="btn btn-primary" type="button" data-bb-handler="danger">Close</button>
</div>
На этой веб-странице в процессе находится более 20 кнопок (едва видимых 4-5 на данном этапе).В настоящее время есть всплывающее окно (фон исчезает) с двумя кнопками, как показано в разделе кода выше.
В селене, оно выдает StaleElementReferenceException: stale element reference: element is not attached to the page document
в строке, которая говорит b.getTagName()
.
Не уверен, что может быть причиной этого.Уже попробовал: 1. Явно ждал 30 секунд.2. Селекторы XPath
3. Несколько раз опрашивать в цикле и блоки try-catch ... как упоминалось в других ответах.Получение того же исключения для всех возможных решений.
Что может быть причиной этого?
ps Не удается опубликовать снимок экрана, так как это корпоративное приложение.