Выберите RadioButton Selenium python - PullRequest
       0

Выберите RadioButton Selenium python

0 голосов
/ 17 января 2020

На сайте: https://www.investing.com/economic-calendar/ Я пытаюсь установить несколько фильтров для сбора данных. Я хочу установить время фильтра: «Отображать только время» и важность фильтра: 2 и 3 быка. Я попробовал следующий скрипт, но ни одна из переключателей не является интерактивной.

base_url = "https://www.investing.com/economic-calendar/"
driver = webdriver.Chrome(path, port=5007)
driver.get(base_url)

# expand filters
driver.find_element_by_id("filterStateAnchor").click()

Radio_bull2 = driver.find_element_by_xpath("//input[@id='importance2']")
Radio_bull2.click()

Radio_bull3 = driver.find_element_by_xpath("//input[@id='importance3']")
Radio_bull3.click()

Radio_time = driver.find_element_by_xpath("//input[@id='timetimeOnly']")
Radio_time.click()

Я был бы очень признателен за помощь. Спасибо!

1 Ответ

0 голосов
/ 17 января 2020

Чтобы щелкнуть по элементу динамического c, например Display time only и bull2 & bull3, вызвать WebDriverWait и element_to_be_clickable()

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID,'filterStateAnchor'))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID,'timetimeOnly'))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID,'importance2'))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID,'importance3'))).click()

Вам необходимо добавить следующие библиотеки.

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...