日历控件是在web上常遇到的场景,有些事可以输入,但有些事不能输入的,接下来以12306网站为例,讲解如何解决日历控件为readonly属性的问题
基本思路:先用js去掉readonly属性,然后直接输入日期文本内容
用Google查看输入框的属性:readonly="",如下:
<input type="text" class="input" value="2018-07-21" id="train_date" readonly="">
用js去掉readonly属性:
1.用js去掉元素属性基本思路:先定位到元素,然后用removeAttribute("readonly")方法删除属性
2.出发日元素id为:train_date,对应js代码为:'goData = document.getElementById("train_date");'
3.使用removeAttribute()方法删除属性:'goData.removeAttribute("readonly")'
输入日期:
1.输入日期前,一定要先清空文本,要不然无法输入成功的
2.这里输入日期后,会自动弹出日历控件,随便点下其它位置就好了
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.12306.cn')
# 准备js语句并去掉元素readonly属性
goData = 'document.getElementById("train_date"