#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();