Обновить значение элемента Datepicker в Selenium? - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь проанализировать исторические данные из https://www.investing.com. Мне нужен мой вывод в CSV. Ниже приведен код, который я использую:

#driver configurations
chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument('--no-sandbox')
chromeOptions.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(chrome_options=chromeOptions, 
desired_capabilities=chromeOptions.to_capabilities(), 
executable_path='C:\\Users\\akiedi7\\Desktop\\chromedriver.exe')

url = 'https://www.investing.com/{}/{}-historical-data'

type = 'indices'
index = 'eu-stoxx50'


new_link = url.format(type,index)
driver.get(new_link)

picker = driver.find_element_by_class_name('float_lang_base_1')
sdate = picker.find_element_by_tag_name('input').get_attribute('value')
sdate.clear()

Я могу извлечь значение даты в виде строки, но как мне обновить значение диапазона дат и извлечь данные?

Кроме того, как я смогу загрузить данные в зависимости от моего местоположения?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

После того как вы создали new_link:

picker=driver.find_element_by_id('datePickerIconWrap')
date = picker.find_element_by_xpath("//input[@class='hasDatepicker']")
# you are dealing with an input field with  type=hidden, so click it like this
driver.execute_script("arguments[0].click();", date)  

#Update Start Date; I've used some example dates
start_date=driver.find_element_by_id('startDate')
start_date.clear()
start_date.send_keys("01/02/2020")

#Update End Date
end_date=driver.find_element_by_id('endDate')
end_date.clear()
end_date.send_keys("12/02/2020")

#Click Apply
driver.find_element_by_id('applyBtn').click()

Примечание: Вам нужен этот импорт, если у вас его еще нет, для отправки ключей:

from selenium.webdriver.common.keys import Keys
0 голосов
/ 13 февраля 2020

вы можете использовать javascript.

document.getElementById("picker").setAttribute("value","new_value")

query = 'document.getElementById("picker").setAttribute("value","new_value")'
driver.execute_script(query)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...