python-web自動化-Js-日曆操做

日曆控件是web網站上常常會遇到的一個場景,有些輸入框是能夠直接輸入日期的,有些不能;以12306網站爲例,講解如何解決日曆控件爲readonly屬性的問題。web

基本思路:先用js去掉readonly屬性,而後直接輸入日期文本內容。網站

 

以下圖:spa

 

詳細代碼以下:15-21行是處理日曆控件的代碼code

 1 from selenium import webdriver
 2 import time
 3 from selenium.webdriver.common.keys import Keys
 4 
 5 # 打開12306首頁
 6 driver = webdriver.Chrome()
 7 driver.get('https://www.12306.cn/index/')
 8 time.sleep(2)
 9 # 出發地輸入地點
10 driver.find_element_by_xpath('//input[@id="fromStationText"]').click()#先點擊輸入框清空默認文本
11 driver.find_element_by_xpath('//input[@id="fromStationText"]').send_keys('濟南',Keys.ENTER)#輸入文本回車
12 # 到達地輸入地點
13 driver.find_element_by_xpath('//input[@id="toStationText"]').click()#先點擊輸入框清空默認文本
14 driver.find_element_by_xpath('//input[@id="toStationText"]').send_keys('上海',Keys.ENTER)#輸入文本回車
15 # 處理出發時間
16 # js去除readonly屬性
17 js = 'document.getElementById("train_date").removeAttribute("readonly")'
18 driver.execute_script(js)
19 # js添加時間
20 js_value = 'document.getElementById("train_date").value="2019-02-10"'
21 driver.execute_script(js_value)
相關文章
相關標籤/搜索