Як переходити по елеменам всередині iframe?

webdriver
python
Теги: #<Tag:0x00007fedbf34dc08> #<Tag:0x00007fedbf34dac8>

(Ігор Недашківський) #1

Всім привіт! Я тільки починаю знайомитись з автоматизацією, то ж не будьте сурові. На жаль в схожих темах я вирішення своєї проблеми не знайшов, то ж створив даний топік.
Проблема полягає в тому, що не виходить в мене переміщатись в середині iframe. Є сторінка з фреймом:

Я намагаюсь переключитись в даний фрейм та знайти потрібний мені елемент в ньому:

iframe = driver.find_element_by_tag_name(“iframe”)
driver.switch_to_frame(iframe)

search_element_by_xpath = “//*[@id=‘u_0_a’]”
driver.find_element_by_xpath(search_element_by_xpath)

Але елемент не вдається знайти. Буду вдячний за будь-яку допомогу, роз’яснення, “пєнок” в потрібну сторону.


#2

iframe = driver.find_element_by_id(“your_id_iframe”)
driver.switch_to_frame(iframe)
Поробуй, может поможет


(5am) #4

вы уверены что ifame на странице 1 ?
у меня похожий код работает корректно, пример:

            var driver = new FirefoxDriver();
            driver.Navigate().GoToUrl("http://www.w3schools.com/html/html_iframe.asp");
            var iframeElement = driver.FindElementByXPath("//iframe[@src='default.asp']");
            driver.SwitchTo().Frame(iframeElement);
            var element = driver.FindElement(By.XPath("//div[@id='mainLeaderboard']"));

(Ігор Недашківський) #5

Можна було б спробувати, але забув уточнити деталь, що id та name фрейма динамічні, тобто постійно змінюються.


(5am) #6

получите iframe через xpath, как в моем примере. судя по скриншоту - атрибут class не меняется


(Ігор Недашківський) #7

Ваша відповідь допомогла вирішити проблему! Дуже дякую! Питання зняте з порядку денного)