selenium自动化js处理日历控件操作

本文介绍了如何在遇到具有readonly属性的日历控件时,利用Python的selenium库结合JavaScript进行自动化操作。通过定位元素,移除readonly属性,然后直接输入日期文本,从而实现对12306网站等网页日历控件的有效操作。
摘要由CSDN通过智能技术生成

日历控件是在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"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值