今天來講一下如何用Selenium模擬使用者點擊頁面元素的方式。
Selenium中用於點擊和輸入的主要方法有:
點擊方法:
click()
單擊元素:
driver.find_element_by_id("element").click()
submit()
提交表單:
driver.find_element_by_id("submit_button").submit()
send_keys(Keys.ENTER)
hit enter鍵點擊:
driver.find_element_by_id("element").send_keys(Keys.ENTER)
輸入方法:
send_keys()
模擬鍵盤輸入:
driver.find_element_by_id("input").send_keys("Hello world!")
clear()
清空輸入框內容:
driver.find_element_by_id("input").clear()
send_keys(Keys.BACKSPACE)
刪除鍵入的一個字符:
driver.find_element_by_id("input").send_keys(Keys.BACKSPACE)
其中要模擬鍵盤動作時要先引入
from selenium.webdriver.common.keys import Keys
除了上述的鍵盤模擬範例外還有很多,例如:
Keys.ENTER
: 回車鍵
Keys.SPACE
: 空格鍵
Keys.BACK_SPACE
: 刪除鍵
Keys.CONTROL
: Control鍵
Keys.SHIFT
: Shift鍵
Keys.ALT
: Alt鍵
Keys.ESCAPE
: Esc鍵
Keys.F1到F12
: F1到F12功能鍵
示例:
from selenium.webdriver.common.keys import Keys
# 輸入文本
driver.find_element_by_id("input").send_keys("hello")
# ctrl+a 全選輸入框內容
driver.find_element_by_id("input").send_keys(Keys.CONTROL, 'a')
# ctrl+c 複製輸入框內容
driver.find_element_by_id("input").send_keys(Keys.CONTROL, 'c')
# ctrl+v 粘貼到輸入框
driver.find_element_by_id("input").send_keys(Keys.CONTROL, 'v')
# 清空輸入框
driver.find_element_by_id("input").send_keys(Keys.CONTROL, 'a', Keys.DELETE)
這樣就可以通過send_keys()
進行複雜的鍵盤操作模擬。 Keys提供了豐富的鍵位常量,使模擬更加真實有效。
點擊方法主要通過click()
、submit()
或send_keys(Keys.ENTER)
來點擊元素。
輸入方法主要通過send_keys()
輸入文本內容,可以通過clear()
清空輸入框,或send_keys(Keys.BACKSPACE)
刪除字符。
需要注意的是,在點擊或輸入之前,需要先定位到要操作的元素。