Как получить доступ к вложенному html, который находится внутри фрейма, через Selenium

У меня есть веб-сайт, внутри которого вложен тег html, как показано ниже. Вопросы:

  1. Как искать элемент в frameBody с помощью селена?
  2. Как дождаться успешной загрузки элемента в frameBody?

Пожалуйста помоги. Спасибо. Получите исходный код приложения по этой ссылке.

введите здесь описание изображения


person nicholas    schedule 13.08.2018    source источник
comment
Я пробовал с этим driver.switchTo().frame(frameBody); но это приводит к тому, что элемент кадра не найден по имени или идентификатору frameBody.   -  person nicholas    schedule 13.08.2018


Ответы (1)


<frame> с id = frameBody вложены в другой <iframe>, вам нужно сначала переключиться на него

WebElement iframe = driver.findElement(By.cssSelector("#tabFrames > iframe:nth-child(1)"));
driver.switchTo().frame(iframe);
driver.switchTo().frame("frameBody");
person Guy    schedule 13.08.2018
comment
Пожалуйста, посмотрите мой скриншот кода. Можете ли вы указать мне точную структуру? - person nicholas; 13.08.2018
comment
@peterwkc Структура очень четкая, вы можете увидеть ее по отступам. Вы также можете открывать и закрывать разделы в инструментах разработчика, чтобы увидеть это. - person Guy; 13.08.2018
comment
Выдает NoSuchElementException: такого элемента нет: невозможно найти элемент: tabFrames › iframe:nth-child(2) - person nicholas; 13.08.2018
comment
@peterwkc Должно быть driver.findElement(By.cssSelector("#tabFrames > iframe:nth-child(1)")); - person Guy; 13.08.2018
comment
Я использую xpath, и он работает. - person nicholas; 13.08.2018