Не удалось найти элемент в классе span с помощью Python Selenium

#python #html #css #selenium

Вопрос:

Я изо всех сил пытался найти элемент в классе span. Этот элемент представляет собой кнопку с отметкой по радио. Вот html-код:

 <span class="radio-container" for="searchType_2">
<input class="form-check-input" type="radio" name="searchType" id="searchType_2" value="cidade">
<span class="radio-checkmark">
::after
 

Поскольку классы выше не уникальны, я попробовал следующее:

 dropdown_menu = self.driver.find_element_by_css_selector('[for="searchType_2"] .radio-checkmark')
 

Когда я провожу проверку и поиск с помощью селектора CSS выше, это работает. Он показывает меня как 1 из 1. Но когда я запускаю код, я получаю следующее исключение:

 no such element: Unable to locate element: {"method":"css selector","selector":"[for="searchType_2"] .radio-checkmark"}
(Session info: chrome=92.0.4515.107
 

Спасибо

Комментарии:

1. можете ли вы поделиться ссылкой на эту страницу?

2. Лучше ли это сочетается с ‘[for=»searchType_2″] [класс=»радио-галочка»]’

3. Привет, Пророк. Ссылка на страницу находится granplus.com.br/onde-comprar-lojas-fisicas . Пометка на радио — «Por minha cidade».

4. Привет, Джереми. Я попробовал твое предложение. К сожалению, это не сработало.

Ответ №1:

Элемент, к которому вы пытаетесь получить доступ, находится внутри iframe. Вам нужно переключиться на iframe, прежде чем обращаться к любому элементу внутри него

 driver.switch_to_frame(driver.find_element_by_xpath("//iframe[@class='cz-map-frame']"))
driver.find_element_by_xpath("//input[@id='searchType_2']//following::span[@class='radio-checkmark'][1]").click();