参考博客:
python+selenium:web端关闭时间控件readonly属性,可直接输入【今天】【昨天】【任意】时间
类似这样的时间戳控件:
可以看到控件有:readonly 属性【只读】
一、移除或者关闭web端时间控件的readonly属性的方法
-
方法一:原生js,移除readonly属性
js = "document.getElementById('train_date').removeAttribute('readonly')"
-
方法二:jQuery,移除readonly属性
js = "$('input[id=train_date]').removeAttr('readonly')"
-
方法三:jQuery,设置属性为false
js = "$('input[id=train_date]').attr('readonly',false)"
-
方法四:jQuery,设置属性为空
js = "$('input[id=train_date]').attr('readonly',’ ‘)"
二、清除时间控件原有显示文本, send_keys输入自己想要输入的时间
# 随便选一种方法移除或者关闭web端时间控件的readonly属性
js_beginDate = "$('input[id=beginDate]').removeAttr('readonly')"
driver.execute_script(js_beginDate)
# 清除时间控件原有显示文本
driver.find_element_by_id('beginDate').clear()
# send_keys输入自己想要输入的时间
driver.find_element_by_id('beginDate').send_keys('2020-07-07 00:00:00')
# 同理
js_endDate = "$('input[id=endDate]').removeAttr('readonly')"
driver.execute_script(js_endDate)
driver.find_element_by_id('endDate').clear()
driver.find_element_by_id('endDate').send_keys('2020-07-07 23:59:59')
三、如何向控件中传入昨天的指定日期时间呢?
- 当前日期为:2020-07-08
- 运行结果:
想要明天的话,就直接(days=1),简单粗暴
import datetime
# 输出 :昨天的日期+00:00:00
now_time = datetime.datetime.now()
yesterday = now_time + datetime.timedelta(days = -1)
'''strftime()的用法 :strftime('%Y.%m.%d-%H:%M:%S')'''
begin_time = yesterday.strftime('%Y-%m-%d 00:00:00')
print(begin_time)
# 输出 :昨天的日期+23:59:59
now_time = datetime.datetime.now()
yesterday = now_time + datetime.timedelta(days = -1)
end_time = yesterday.strftime('%Y-%m-%d 23:59:59')
print(end_time)