我正在尝试在页面上设置一些功能,以自动从网站下载数据。问题是我无法通过日历正确设置日期。
我尝试使用功能'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")
使用此代码,我可以选择当前日期,但是当我尝试设置新日期时,我无法使其正确运行。
答案 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