如何在Python上使用Selenium选择日期范围?

时间:2019-04-12 11:23:14

标签: python selenium

我正在尝试在页面上设置一些功能,以自动从网站下载数据。问题是我无法通过日历正确设置日期。

我尝试使用功能'find_element_by_xpath'设置xpath,但它似乎不起作用。

from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait


browser.get("http://www.aguacanal.es/regantes/")


select = Select(browser.find_element_by_id('sectorSelect'))
# select by visible text
select.select_by_visible_text('Sector III')

select = Select(browser.find_element_by_id('hidranteSelect'))
# select by visible text
select.select_by_visible_text('H03.156')


nav = browser.find_element_by_id('hidConDi-btn')
nav.click()



#---DatePicker
datefield = browser.find_element_by_id('hidConDi-fechaIni').click()
datefield.send_keys("01012019")
datefield = browser.find_element_by_id('hidConDi-fechaFin').click()
datefield.send_keys("03012019")

使用此代码,我可以选择当前日期,但是当我尝试设置新日期时,我无法使其正确运行。

1 个答案:

答案 0 :(得分:1)

您不能简单地将密钥发送到日期选择器并让其选择日期。

一种方法是在页面上执行JS以选择所需的日期,但是这被认为是不好的做法。

JS注入示例:

#---DatePicker
browser.execute_script("$('#hidConDi-fechaIni').val('01/01/2019').change();")
time.sleep(2)
browser.execute_script("$('#hidConDi-fechaFin').val('03/03/2019').change();")

更好的方法是使导航自动进行,这通常是选择过去的日期,但是它更复杂。 Example