在自动化测试过程中,可能会遇到日历形式的输入框,我针对此类问题整理了以下解决方案。
问题分析
日历输入框有多种表现形式,然而前端代码都是类似的,这里以12306官网的出发日期为例子 通常不能直接输入日期的原因都是因为在Js代码里加入了readonly限制,我们只需要把该字段去掉即可用普通的输入方式修改时间(但是需要注意日期格式与原格式相同,不然会报错)解决方案
1. 惯例先从导包开始from selenium.webdriver import Chrome
import traceback
2. 初始化相关设置
# 通过距离创建driver对象
driver = Chrome(executable_path='./chromedriver')
# 窗口最大化
driver.maximize_window()
# 绑定网址URL
driver.get('https://www.12306.cn/index/')
3. 代码实现
js_value = "document.getElementById('train_date').value='{}'".format("2020-09-18")
driver.execute_script(js_value)
driver.quit()