iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0

今天來講一下如何用Selenium模擬使用者點擊頁面元素的方式。

Selenium中用於點擊和輸入的主要方法有:

點擊方法:

  1. click()

單擊元素:

driver.find_element_by_id("element").click()
  1. submit()

提交表單:

driver.find_element_by_id("submit_button").submit()
  1. send_keys(Keys.ENTER)

hit enter鍵點擊:

driver.find_element_by_id("element").send_keys(Keys.ENTER)

輸入方法:

  1. send_keys()

模擬鍵盤輸入:

driver.find_element_by_id("input").send_keys("Hello world!")
  1. clear()

清空輸入框內容:

driver.find_element_by_id("input").clear() 
  1. 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)刪除字符。

需要注意的是,在點擊或輸入之前,需要先定位到要操作的元素。


上一篇
[DAY10]Selenium等待
下一篇
[DAY12]Selenium頁面操作和切換
系列文
selenium爬蟲應用至discord bot30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言