selenium---JS修改属性处理日历控件

本文介绍了如何通过JavaScript删除HTML元素的readonly属性,以允许在只读输入框中输入内容,特别适用于处理日历控件。通过示例展示了在 Selenium 中操作Chrome浏览器,移除12306网站火车票日期选择框的readonly属性,实现自动化输入。
摘要由CSDN通过智能技术生成

前言

  前面介绍了JS可以修改一些元素属性内容,在做web自动化的时候,会遇到设定为无法输入的内容,让我们自己选择,这时候为了避免选择出错,我们可以直接通过JS修改成可输入,然后进行输入内容。这种场景最常用的也就属日历控件了。

readonly

readonly这个参数在html中表示规定输入字段是只读的。不可以进行输入。

把下面的代码放到文本中,后缀改成HTML,打开可以发现,输入框内无法进行修改。

<
<html>
<body>
欢迎关注测试-安静:<br>
<input type="text" class="input" value="测试-安静" id="anjing" readonly="">
<br>
</body>
</html>

我们可以进行对这个属性进行删除,删除过后在进行输入

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get(r'E:\web\11.html')
js = 'document.getElementById("anjing").removeAttribute("readonly")'
driver.execute_script(js)
time.sleep(2)
# 先清空,再输入
driver.find_element_by_id('anjing').clear()
driver.find_element_by_id('anjing').send_keys('感谢关注测试-安静!')

在这里插入图片描述

回到标题,其实一般的日历都是通过readonly属性来控制不让输入,只能手动选择。安静拿12306进行来看

在这里插入图片描述

通过12306的我们再一次修改属性和我们的标题挂钩~

<
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.12306.cn/index/')
js = 'document.getElementById("train_date").removeAttribute("readonly")'
driver.execute_script(js)
time.sleep(2)
# 先清空,再输入
driver.find_element_by_id('train_date').clear()
time.sleep(2)
driver.find_element_by_id('train_date').send_keys('感谢关注测试-安静!')

在这里插入图片描述

通过两个小的案例再一次复习如何通过JS进行来删除属性,以及学习遇到这种日历控件无法输入,如何进行输入参数

 

安静搞了个公众号,准备把博客内容都整理在一起,方面大家通过手机都可以跟着安静一起学习。如果喜欢的话,扫码关注,感谢您的支持。

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值