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

1.1       日历控件

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

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

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

# 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

Selenium2+Python2.0自动化测试【16】 日历控件
  先使用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()