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;
    }

 

posted @ 2017-02-16 18:12  打不过小怪兽leer  阅读(1419)  评论(0编辑  收藏  举报