日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题。

基本思路:先用js去掉readonly属性,然后直接输入日期文本内容

一、日历控件

1.打开12306的车票查询界面,在出发日期输入框无法直接输入时间

2.常规思路是点开日历控件弹出框,从日历控件上点日期,这样操作比较烦躁,并且我们测试的重点不在日历控件上,只是想输入个时间,做下一步的操作

3.用firebug查看输入框的属性:readonly="readonly",如下:

二、去掉readonly属性

1.很明显这种元素的属性是readonly,输入框是无法直接输入的,这时候需要先去掉元素的readonly属性,然后就可以输入啦。

2.点左下角firebug的“编辑按钮”,找到对应元素,直接删除readonly="readonly",然后回车。

3.在页面出发日位置输入:yoyoketang 试试,嘿嘿,有没发现可以输入成功。当然这里只是为了验证可以输入内容,测试时候还是输入测试的日期。

三、用js去掉readonly属性

1.用js去掉元素属性基本思路:先定位到元素,然后用removeAttribute("readonly")方法删除属性。

2.出发日元素id为:train_date,对应js代码为:'document.getElementById("train_date").removeAttribute("readonly");'

四、输入日期

1.输入日期前,一定要先清空文本,要不然无法输入成功的。

2.这里输入日期后,会自动弹出日历控件,随便点下其它位置就好了,接下来会用js方法传入日期,就不会弹啦!

五、js方法输入日期

1.这里也可以用js方法输入日期,其实很简单,直接改掉输入框元素的value值就可以啦

六、参考代码如下:

# coding:utf-8

from selenium import webdriver

driver = webdriver.Firefox()

driver.get("https://kyfw.12306.cn/otn/index/init")

# 去掉元素的readonly属性

js = 'document.getElementById("train_date").removeAttribute("readonly");'

driver.execute_script(js)

# 用js方法输入日期

js_value = 'document.getElementById("train_date").value="2016-12-25"'

driver.execute_script(js_value)

# # 清空文本后输入值

# driver.find_element_by_id("train_date").clear()

# driver.find_element_by_id("train_date").send_keys("2016-12-25")

python时间控件readonly属性_Selenium2+python自动化25-js处理日历控件(修改readonly属性)转自-上海悠悠...相关推荐

  1. Python+selenium自动化-js处理日历控件(修改readonly属性)

    前言 今天写自动化脚本的时候遇到一个需要更改日期的控件,不想费劲巴拉的去找日历的定位,但是又没办法直接输入我想输的日期时间,想了会儿之后决定用js解决日历控件 基本思路:先用js去掉readonly属 ...

  2. 【基于python实现UI自动化】3.4 JS 处理日历控件(删除 readonly 属性)

    python-UI自动化 1.0 selenium工具介绍 2.0 selenium环境搭建 3.0 selenium常见8大元素定位 3.1 selenium通过By定位元素 3.2 seleniu ...

  3. python时间控件readonly属性_Selenium2+python自动化----js处理日历控件(修改readonly属性)...

    前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...

  4. python时间控件readonly属性_人生苦短,我学python之python+selenium js处理日历控件(修改readonly属性)...

    转载于 上海-悠悠的博客 前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性 ...

  5. 艺赛旗(RPA)selenium 利用 js 处理日历控件

    艺赛旗 RPA8.0全新首发免费下载 点击下载 http://www.i-search.com.cn/index.html?from=line1 详细内容请参看艺赛旗官网支持栏目:RPA社区 点击链接 ...

  6. python时间str转datetime_深入了解Python中的小知识

    @Author:By Runsen time和datetime是Python处理日期和时间的标准库.在我们项目的实际开发当中使用率是非常高的.datetime模块有四个重要的类,date,time,d ...

  7. python时间函数纳秒_在Python中以秒和纳秒获取POSIX / Unix时间?

    我一直在努力找到一种方法来获取自1970-01-01 00:00:00 UTC以来的时间,以秒为单位,在python中以纳秒为单位,我找不到能给我正确精度的任何东西. 我尝试过使用时间模块,但是精度只 ...

  8. python时间序列分析航空旅人_用python做时间序列预测一:初识概念

    利用时间序列预测方法,我们可以基于历史的情况来预测未来的情况.比如共享单车每日租车数,食堂每日就餐人数等等,都是基于各自历史的情况来预测的. 什么是时间序列? 时间序列,是指同一个变量在连续且固定的时 ...

  9. edit控件自动换行 mfc_VS2010/MFC编程入门:如何创建对话框模板和修改对话框属性?...

    创建对话框主要分两大步,第一,创建对话框资源,主要包括创建新的对话框模板.设置对话框属性和为对话框添加各种控件:第二,生成对话框类,主要包括新建对话框类.添加控件变量和控件的消息处理函数等.在本节中先 ...

  10. python时间序列分析按月_利用 Python 进行时间序列分析

    1. 时间序列分析概述 时间序列分析在金融.气象.交通.宏观经济等诸多领域的应用可以说是非常的广泛.简单点说,时间序列就是在各个时间点上形成的数值序列,而分析的过程就是通过这些数值序列去研究其自身的变 ...

最新文章

  1. python绘图课设_python课程设计笔记(三)turtle绘图库(海龟库)
  2. centos7 firewall指定IP与端口访问(常用)
  3. 台湾印象之六:林志玲神话
  4. Elasticsearch的javaAPI之facet,count,delete by query
  5. pyqt5 界面切换
  6. html同时用多个css,多类选择器的运用_html/css_WEB-ITnose
  7. 百度贴吧签到助手php,玩心太大,自己部署一个贴吧签到器
  8. 反编译微信小程序工具之抓取小程序图片素材详细教程
  9. 双目相机:基于双目视觉的目标测距
  10. [QNX]calib_校准工具使用教程
  11. 现货白银最低门槛是啥?
  12. 计算机上机考试自我检查800字,【考试太差 自我反省检讨书800字】_考试成绩差自我反省检讨书范文3篇...
  13. Java学习笔记(9)-StringBuilder类二
  14. Python爬虫实战:分析《战狼2》豆瓣影评
  15. HTML绘制齿轮,HTML5模拟齿轮动画代码实例
  16. 英文里说话时用的PS什么意思
  17. 【人工智能】云边融合的AI Cloud 不是简单的“云+边”
  18. 线性代数考研笔记(四)
  19. 内网服务通过frp内网穿透映射到公网
  20. Nginx配置网站适配PC和手机

热门文章

  1. Navicat Premium 12安装包下载
  2. Logback-日志文件按日期切分解决方案
  3. php之sprintf的用法,PHP之sprintf函数用法详解
  4. 用ajax实现图片上传 帮你简单快速学会使用
  5. 冯诺依曼计算机流程图,基本流程图综述
  6. 常用数学符号大学(包含罗马字符)
  7. Android Studio设计用户登录界面
  8. JDK7~13的新特性
  9. Python基础知识详解(十)小结,用python实现教师信息管理系统
  10. 计算机二级C语言考试模拟系统+真题题库软件下载