一、send_keys 簡介
send_keys 是 Selenium 的一個重要 API,用於向輸入框中輸入文本或按鍵,同時也能夠在瀏覽器內模擬鍵盤的各種操作,是 Web 自動化測試中經常使用的操作之一。
在 Python 的 Selenium WebDriver 中,send_keys 主要是通過 WebDriver 的一個 find_element_by_* 方法找到需要操作的元素,然後對該元素進行 send_keys 的調用,來進行相應的操作。
二、send_keys 的輸入文本
調用 send_keys 可以將字符串作為參數輸入到選定的元素中,代碼如下:
from selenium import webdriver
browser = webdriver.Chrome() # 初始化瀏覽器
browser.get('https://www.baidu.com') # 打開百度頁面
input_element = browser.find_element_by_id('kw') # 找到輸入框
input_element.send_keys('Selenium') # 輸入文本
在上述代碼中,首先使用 WebDriver 打開了百度頁面,然後使用 find_element_by_id 方法找到了百度搜索框元素。接着使用 send_keys 將字符串參數“Selenium”輸入到該元素中。當執行完 send_keys 之後,框內就會顯示“Selenium”。
三、send_keys 的按鍵操作
send_keys 不僅能夠輸入文本,還可以模擬鍵盤按鍵操作。對於一些特殊的鍵盤按鍵,只需要輸入對應的 key 便可以模擬按鍵操作,更多鍵盤按鍵詳見 官方文檔。例如,按下回車鍵可以使用如下代碼:
from selenium.webdriver.common.keys import Keys # 引入 Keys # 執行搜索 input_element.send_keys(Keys.RETURN)
由於引入了 Keys,故可以使用 Keys.RETURN 來模擬按下回車鍵。
四、send_keys 的多個參數
send_keys() 方法也支持多個參數,此時按照參數順序逐一輸入,例如:
input_element.send_keys('Selenium', Keys.RETURN)
上述代碼先輸入 “Selenium”,再按下回車鍵。
五、send_keys 的組合按鍵
send_keys() 方法也支持模擬組合按鍵操作。例如,按下 Ctrl+C 複製文本內容:
input_element.send_keys(Keys.CONTROL, 'a') # 全選文本 input_element.send_keys(Keys.CONTROL, 'c') # 複製文本
由於使用了 Keys.CONTROL,同時按下“c”鍵,即模擬了組合鍵 Ctrl+C 的作用。
六、send_keys 的中文輸入
在使用 send_keys 輸入中文時,如果直接輸入中文字符會報錯,因為 Python 默認使用 ASCII 編碼,無法識別中文編碼。此時,需要將字符串轉化為 Unicode 編碼才能正常輸入中文。
input_element.send_keys(u'中國')
或者使用字符串前添加 u 將其轉化為 Unicode 編碼:
input_element.send_keys('中國'.decode('utf8'))
七、小結
以上是關於 send_keys 的基本操作介紹,它是 Selenium WebDriver 中很重要的一個 API,可以輸入文本、模擬按鍵操作、組合按鍵等,幫助開發人員實現自動化測試的目的。開發人員應該根據需求,結合實際情況,選用合適的方法來進行 Web 自動化測試。
原創文章,作者:NMKH,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/147597.html
微信掃一掃
支付寶掃一掃