Selenium2+Python2.0自动化测试【16】 日历控件

本文介绍如何使用Selenium WebDriver在Python中操作两种不同类型的日历控件:一种是普通输入框形式的日期选择器;另一种是带有readonly属性的日期输入框。通过示例演示了如何使用send_keys方法直接输入日期,以及如何利用JavaScript移除readonly属性来实现日期的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1       日历控件

WEB页面会遇到各种各样的日历控件。但是日期控件都是input标签下弹出来的,可以直接定位到该input,使用sendKeys 方法输入想要设置的值。

1.如果是这种,用法简单定位到input框,直接send_keys


# coding=utf-8
# 日历控件
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(10)
# 此处使用携程网示范
driver.get("http://flights.ctrip.com/")
# 直接定位输入日期
driver.find_element_by_xpath(".//*[@id='DepartDate1TextBox']").send_keys("2017-09-30")
time.sleep(10)
driver.quit()

2. 如果是这种,input有属性readonly


  先使用JS用法将只读属性移除,然后定位到输入框直接send_keys

     PS:如果控件在iframe上,请先切换frame

# coding=utf-8
# 日历控件
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(10)
# 此处使用12306网站示范
driver.get("https://kyfw.12306.cn/otn/leftTicketPrice/init")
# js移除属性
js = "document.getElementById('train_date').removeAttribute('readonly')"
driver.execute_script(js)
# 移除只读属性后定位输入时间值
driver.find_element_by_xpath(".//*[@id='train_date']").clear()
driver.find_element_by_xpath(".//*[@id='train_date']").send_keys("2017-09-30")
time.sleep(10)
driver.quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值