t.me/atinfo_chat Telegram группа по автоматизации тестирования

Как переключится во вложенный iframe и найти элемент внутри #document

iframe
webdriver
javascript
selenium
Теги: #<Tag:0x00007f9c5cf8a570> #<Tag:0x00007f9c5cf8a430> #<Tag:0x00007f9c5cf8a2f0> #<Tag:0x00007f9c5cf8a1b0>

(Andrey Andrey) #1

Привет.
Подскажите, как использовать метод driver.switchTo().frame() или выполнить JavaScript на Java

Пробовал использовать driver.switchTo().frame но не находит элемент driver.switchTo().frame(driver.findElement(By.id(“coach_frame14248522.cf1”)));

Если использовать JavaScript в консоли, то получается достучатся к элементам данным запросом:
document.querySelectorAll(‘iframe’)[2].contentWindow.document.querySelector(‘iframe’).contentWindow.document


(Vasiliy Rakshin) #2

Вам сначала надо в верхний свичнуться (первая стрелка), а затем свитч во фрейм id(“coach_frame14248522.cf1”).


(Andrey Andrey) #3

Вот, только как построить запрос…Я понимаю что нужно сначала переключится в верхний…так как верхнеуровневом нет имени то переключаюсь iframe[2] но дальше не видит следующий фрейм id(“coach_frame14248522.cf1”).


(Vasiliy Rakshin) #4

Элементы ДОМа можно искать не только по имени или id. Учитесь строить css или xpath запросы к элементам.


(Andrey Andrey) #5

Спасибо разобрался. Построил запрос следующим образом
driver.switchTo().frame(driver.findElement(By.cssSelector(“iframe[title=‘Этап: Заповнення заявки’]”))).switchTo().frame(driver.findElement(By.cssSelector(“iframe[title=‘Coach’]”)));