Невозможно снова получить iframe после навигации по iframe - PullRequest
0 голосов
/ 20 февраля 2019

В моем тесте webdriver я переключаюсь на Iframe и выполняю навигацию на стороне клиента, затем я хочу заполучить новый URL-адрес iframe, чтобы выполнить некоторые утверждения:

WebElement iframe = driver.findElements(By.tagName("iframe")).get(0);
driver.switchTo().frame(iframe);

// Click a link and navigate within the iframe.

. . . 

driver.switchTo().defaultContent();

// Try to find the new url of the iframe.
iframe = driver.findElements(By.tagName("iframe")).get(0);
driver.switchTo().frame(iframe);
String appDetailPageUrl = iframe.getAttribute("src");

, но это не удается с

org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document.

Есть идеи?

1 Ответ

0 голосов
/ 20 февраля 2019

При переключении на iframe контекст драйвера изменился на iframe, поэтому все ранее расположенные элементы были потеряны и теперь устарели.

Кроме того, если атрибут src является частьюэлемента <iframe>, который нельзя найти внутри iframe, область действия драйвера начинается с тега <html> внутри него.

Возьмите атрибут перед переключателем

iframe = driver.findElements(By.tagName("iframe")).get(0);
String appDetailPageUrl = iframe.getAttribute("src");
driver.switchTo().frame(iframe);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...