1. 程式人生 > 實用技巧 >selenium---JS修改屬性處理日曆控制元件

selenium---JS修改屬性處理日曆控制元件

  前面介紹了JS可以修改一些元素屬性內容,在做web自動化的時候,會遇到設定為無法輸入的內容,讓我們自己選擇,這時候為了避免選擇出錯,我們可以直接通過JS修改成可輸入,然後進行輸入內容。這種場景最常用的也就屬日曆控制元件了。

readonly

readonly這個引數在html中表示規定輸入欄位是隻讀的。不可以進行輸入。

把下面的程式碼放到文字中,字尾改成HTML,開啟可以發現,輸入框內無法進行修改。

<html>
<body>
歡迎關注測試-安靜:<br>
<input type="text" class="input" value="測試-安靜"
id="anjing" readonly=""> <br> </body> </html>

我們可以進行對這個屬性進行刪除,刪除過後在進行輸入

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get(r'E:\web\11.html')
js = 'document.getElementById("anjing").removeAttribute("readonly")'
driver.execute_script(js)
time.sleep(
2) # 先清空,再輸入 driver.find_element_by_id('anjing').clear() driver.find_element_by_id('anjing').send_keys('感謝關注測試-安靜!')

回到標題,其實一般的日曆都是通過readonly屬性來控制不讓輸入,只能手動選擇。安靜拿12306進行來看

通過12306的我們再一次修改屬性和我們的標題掛鉤~

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.12306.cn/index/
') js = 'document.getElementById("train_date").removeAttribute("readonly")' driver.execute_script(js) time.sleep(2) # 先清空,再輸入 driver.find_element_by_id('train_date').clear() time.sleep(2) driver.find_element_by_id('train_date').send_keys('感謝關注測試-安靜!')

通過兩個小的案例再一次複習如何通過JS進行來刪除屬性,以及學習遇到這種日曆控制元件無法輸入,如何進行輸入引數

最新安靜搞了個公眾號,準備把部落格內容都整理在一起,方面大家通過手機都可以跟著安靜一起學習。如果喜歡的話,掃碼關注,感謝您的支援。