#python #selenium
#python #селен
Вопрос:
Я пытаюсь нажать кнопку. Я пробовал много методов, но не работал
Итак, мой вопрос в том, как я могу нажать кнопку «Я согласен»?
пожалуйста, смотрите изображение
Я попробовал этот метод
Первый:
browser.switch_to.frame(browser.find_element_by_id('introAgreeButton'))
vote = browser.find_element_by_xpath('//*[@id="introAgreeButton"]')
vote.click()
Второй:
accepted = browser.find_elements_by_id('introAgreeButton')
browser.execute_script("arguments[0].click();", accepted )
Третий (классический):
accepted = browser.find_elements_by_id('introAgreeButton')
accepted.click()
Комментарии:
1. Какие ошибки вы получили?
2. @arundeepchohan selenium.common.exceptions. Исключение NoSuchElementException: Сообщение: нет такого элемента: не удается найти элемент: {«метод»: «селектор css»,»селектор»:»[id =»introAgreeButton»]»}
3. Сначала проверьте, есть ли он в каких-либо фреймах.
4. @arundeepchohan на самом деле я добавил скриншот. не могли бы вы проверить?
5. Просто проверьте источник страницы на наличие любых фреймов.
Ответ №1:
Приведенный выше ответ от sykezlol не сработал для меня, но этот код сработал:
browser.switch_to_default_content()
browser.switch_to.frame(browser.find_elements_by_tag_name('iframe')[0])
browser.implicitly_wait(1)
browser.find_element_by_id('introAgreeButton').click()
browser.switch_to.default_content()
Я использую здесь «браузер» вместо «драйвера».
Комментарии:
1.
browser.switch_to_default_content()
теперьbrowser.switch_to_default_content
Ответ №2:
Вы можете использовать полный xpath, чтобы получить полный путь к iframe. Я получил ваш скрипт, работающий следующим образом:
driver.get('https://www.google.com')
driver.switch_to.frame(driver.find_element_by_xpath('/html/body/div/div[4]/div[3]/div/div[2]/span/div/div/iframe'))
element = driver.find_element_by_id('introAgreeButton')
element.click()
Как вы можете видеть, я использую driver.switch_to.frame — внутри этого фреймового переключателя я найду элемент iframe, используя полный xpath. Вы можете найти полный путь, щелкнув правой кнопкой мыши при его проверке и выбрав «Копировать -> Полный Xpath».
Я надеюсь, что это поможет, в противном случае, пожалуйста, спрашивайте 🙂