Как мне выбрать элемент во всплывающем окне в Python Selenium

#python #selenium-webdriver

#python #selenium-webdriver

Вопрос:

 driver.find_element_by_link_text("Yes (Enter)")
  

Похоже, не удается найти элемент. Сначала я должен сосредоточиться на всплывающем окне, но как?

кнопка

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

1. Можете ли вы поделиться соответствующей частью источника страницы? Сначала я должен сосредоточиться на всплывающем окне, но как? Вы что-нибудь пробовали, проводили какие-либо исследования?

Ответ №1:

 driver.find_element_by_link_text("Yes (Enter)")
  

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

Сначала вам нужно найти iframe и переключиться на него.

 frame = driver.find_element_by_tag_name('iframe')  # may need to adjust to find the _correct_ iframe
driver.switch_to.frame(frame)
  

Затем вам нужно будет найти соответствующий элемент в этом фрейме и выполнить эти действия

 button = driver.find_element(by.FOO, ...)
button.click()
  

Затем вы, вероятно, захотите вернуться к контексту по умолчанию (выйти из iframe)

 driver.switch_to_default_content()
  

Наконец: не пытайтесь использовать selenium для автоматизации reddit; это противоречит Условиям предоставления услуг. Вместо этого вы должны использовать API.

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

1. Спасибо! Это «Да (ввод)», потому что это было не для reddit.