12 Python+selenium对日期控件进行处理(采用执行JS脚本)
【环境信息】
Python34+IE+windows2008
【说明】
1、对于日期控件,没有办法通过定位元素再直接传值的方式处理。可以采用执行JavaScript处理。
PS:还要去学学js怎么写,不然要用的时候就只有到处copy了。
【示例】
1、对于如下格式的日期控件需要用JS处理。
2、处理方式:通过driver.execute_script(js)执行。
#问题消除时间,调用JS的当前时间 js = "function getCurrentDate() {" \ " var dtCur = new Date();" \ " var yearCur = dtCur.getFullYear();" \ " var monCur = dtCur.getMonth() + 1;" \ " var dayCur = dtCur.getDate();" \ " var hCur = dtCur.getHours();" \ " var mCur = dtCur.getMinutes();" \ " var sCur = dtCur.getSeconds();" \ " var timeCur = yearCur + \"-\" + (monCur < 10 ? \"0\" + monCur : monCur) + \"-\"" \ " + (dayCur < 10 ? \"0\" + dayCur : dayCur) + \" \" + (hCur < 10 ? \"0\" + hCur : hCur)" \ " + \":\" + (mCur < 10 ? \"0\" + mCur : mCur) + \":\" + (sCur < 10 ? \"0\" + sCur : sCur);" \ " return timeCur;" \ " }" \ "var value = document.getElementById(\"issueEliminatTime\");" \ "value.removeAttribute(\"readonly\");" \ "value.setAttribute(\"value\",getCurrentDate());" self.driver.execute_script(js)
3、对于时间的JS处理方式。
时间格式为:2017-02-16 17:34:18
function getCurrentDate(count) { var dtCur = new Date(); #该语句属于时间偏移量,比如要获取晚于当前时间2小时的时间,count可传入2 #当需要获取晚于当前一天的时间时,可以把getHours()更换成getDate().对于分、秒也是同理 dtCur.setHours(dtCur.getHours()+count); var yearCur = dtCur.getFullYear(); var monCur = dtCur.getMonth()+1; var dayCur = dtCur.getDate(); var hCur = dtCur.getHours(); var mCur = dtCur.getMinutes(); var sCur = dtCur.getSeconds(); var timeCur = yearCur + "-" + (monCur < 10 ? "0" + monCur : monCur) + "-" + (dayCur < 10 ? "0" + dayCur : dayCur) + " " + (hCur < 10 ? "0" + hCur : hCur) + ":" + (mCur < 10 ? "0" + mCur : mCur) + ":" + (sCur < 10 ? "0" + sCur : sCur); return timeCur; }