Не удается найти элемент в iframe с помощью Selenium - PullRequest
0 голосов
/ 30 мая 2019

Я пытаюсь найти элементы внутри iframe, но мне не повезло.

Я думаю, из-за того, что мой код не может переключиться на iframe, и поэтому я не смог найти элементы внутри него.

Ниже приведен мой код.

Я пытался

WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '/html/body/iframe')))
driver.find_element_by_name('applicant.name').send_keys('email')

Я также пытался это

iframe = driver.find_element_by_xpath('/html/body/iframe')
driver.switch_to.frame(iframe)
driver.implicitly_wait(10)
driver.find_element_by_name('applicant.name').send_keys('email')

Я пытался искать xpath, id заявителя.name но пока ничего не работает.Буду признателен за любую помощь или предложения.

Здесь на сайте: https://www.indeed.com/cmp/Paratus-Partners-LLC/jobs/Full-Stack-Developer-7814e52be25090f3?from=iaBackPress&q=software%20developer&vjs=3

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

На странице, которую вы пытаетесь автоматизировать, есть не менее 2 iframes :

enter image description here

Поэтому вам необходимо

  1. Изменить свое выражение XPath , чтобы однозначно идентифицировать первый фрейм как:

    parentIframe = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH,"//iframe[contains(@id,'modal-iframe')]")))
    
  2. Переключение на первый iframe

    driver.switch_to.frame(parentIframe)
    
  3. Найдите второй iframe и переключитесь на него

    childIframe =  WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH,"//iframe[contains(@src,'resumeapply')]")))
    driver.switch_to.frame(childIframe)       
    
  4. После этого вы сможете отправлять текст на входполя.
0 голосов
/ 30 мая 2019

Есть некоторые элементы с xpath /html/body/iframe

Я искал имя кандидата, и его нужно было создать только после нажатия кнопки постулата.

Я думаю, что вы должны проверить xpath для iframe, может быть, что-то подобное может работать

"//iframe[contains(@src,'resumeapply')]"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...