Selenium - переключение в динамический фрейм после нажатия на кнопку - PullRequest
1 голос
/ 09 ноября 2019

Я пытаюсь перейти в новый кадр, который открывается после нажатия кнопки. К сожалению, я получаю значение Нет .

driver = webdriver.Firefox()

driver.get('https://www.milanuncios.com/dacia-de-segunda-mano/dacia-sandero-1-5-dci-exportacion-323650137.htm')
time.sleep(5)

driver.find_element_by_xpath('//button[@id="pagAnuShowContactForm"]').click()
time.sleep(5)

До сих пор это работает, чтобы открыть контактную информацию. Здесь я хотел бы выполнить действия в новом, открытом окне. Я пробовал следующие варианты:

1.

contact = driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))

2.

contact = driver.find_element_by_xpath('//div[@class="telefonos"]')

1 Ответ

1 голос
/ 09 ноября 2019

Чтобы получить номер телефона. Элемент присутствует внутри iframe ID ifrw. Сначала нужно переключиться на iframe.

Индуцировать WebDriverWait И frame_to_be_available_and_switch_to_it ()

ИндуцироватьWebDriverWait А visibility_of_element_located ()

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get('https://www.milanuncios.com/dacia-de-segunda-mano/dacia-sandero-1-5-dci-exportacion-323650137.htm')
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//button[@id='pagAnuShowContactForm']"))).click()
WebDriverWait(driver,10).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"ifrw")))
print(WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.CSS_SELECTOR,".telefonos"))).text.strip())
driver.close()

Выход :

663473583
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...