selenium之 時間日期控制項的處理

2021-07-25 12:35:16 字數 1664 閱讀 7864

很多人問時間日期的空間怎麼處理,但是時間日期控制項各種各樣,你可能遇到正常點的像這樣: 

當然也可能遇到難點的,像這樣: 

當然,也不排除會遇到**的,像這樣: 

呵呵,真要乙個個想著怎麼去選擇,簡直是非人類幹的事!

那麼該怎麼辦?

其實很簡單,我們不去搞時間日期空間,我們把它當成乙個普通的input框處理就好了!

但是,很多此型別input框都是禁止手動輸入的,怎麼辦?

很簡單,用js把禁止輸入的readonly屬性乾掉就好了。

來吧,看一下示例:

示例**:

**:

# -*- coding: utf-8 -*-

from selenium import webdriver

from time import sleep

driver = webdriver.firefox()

driver.get('')

driver.switch_to.frame('iframe')

# js = "document.getelementbyid('txtbegindate').removeattribute('readonly')"

# 1.原生js,移除屬性

# js = "$('input[id=txtbegindate]').removeattr('readonly')"

# 2.jquery,移除屬性

# js = "$('input[id=txtbegindate]').attr('readonly',false)"

# 3.jquery,設定為false

js = "$('input[id=txtbegindate]').attr('readonly','')"

# 4.jquery,設定為空(同3)

driver.execute_script(js)

driver.find_element_by_id('txtbegindate').send_keys('2016-08-24')

sleep(2)

print driver.find_element_by_id('txtbegindate').get_attribute('value')

driver.quit()

結果:

2016-08-24
看,我一下子給了你四種寫法。當然你去選也沒有問題,就是一堆div、ul、li,但是我想說對於日期時間控制項,認真你就輸了,繞過去才是真理,就像驗證碼一樣,這個東西去深究,一點意義也沒有嘛,所以這裡就不推薦也不寫這種方法的示例了。

當然,這裡還得說一下,有人說他遇到的日期時間框沒有id、name,這裡提醒一下,這就是普通的input框,定位方法太多了,class、tag name、xpath、css,總有一種適合你。同時友情提醒一下:注意時刻提防iframe!

selenium之 時間日期控制項的處理

很多人問時間日期的空間怎麼處理,但是時間日期控制項各種各樣,你可能遇到正常點的像這樣 當然也可能遇到難點的,像這樣 當然,也不排除會遇到 的,像這樣 呵呵,真要乙個個想著怎麼去選擇,簡直是非人類幹的事!那麼該怎麼辦?其實很簡單,我們不去搞時間日期空間,我們把它當成乙個普通的input框處理就好了!但...

Python基礎之時間日期

本節介紹python中的時間模組time和日期模組datetime,這兩個模組非常重要。datetime提供了更高階的用法,因此在大多數的場景下都應該選擇用datetime,而不是time。import time get current timestamp print time.time const...

python之時間日期calendar

calendar是與日曆相關的模組,calendar模組檔案裡定義了很多態別,主要有calendar,textcalendar以及htmlcalendar型別。其中,calendar是textcalendar與htmlcalendar的基類。該模組檔案還對外提供了很多方法,例如 calendar,m...