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