如何使用引入的common.keys庫來模擬鍵盤來操控瀏覽器
一猎塞、基礎(chǔ)寫法
具體用法其實(shí)和我們之前對瀏覽器輸入框所用的方法:send_keys()是一樣的姻采,只不過我們通過keys類,可以輸入webdriver包中對應(yīng)的鍵盤操作庶近。
首先導(dǎo)入keys庫
from selenium.webdriver.common.keys import Keys
輸入單個鍵盤按鍵:
小鍵盤按鍵3:send_keys(Keys.NUMPAD3)
輸入多次的同一個按鍵
按10次小鍵盤按鍵3:send_keys(Keys.NUMPAD3*10)
輸入組合按鍵:
全選Ctrl+A: send_keys(Keys.CONTROL, "a")
二、鍵盤按鍵引用對照
我們通過keys類中,找到了鍵盤按鍵所對應(yīng)的值:
NULL = '\ue000'
CANCEL = '\ue001' # ^break
HELP = '\ue002'
BACKSPACE = '\ue003'
BACK_SPACE = BACKSPACE
TAB = '\ue004'
CLEAR = '\ue005'
RETURN = '\ue006'
ENTER = '\ue007'
SHIFT = '\ue008'
LEFT_SHIFT = SHIFT
CONTROL = '\ue009'
LEFT_CONTROL = CONTROL
ALT = '\ue00a'
LEFT_ALT = ALT
PAUSE = '\ue00b'
ESCAPE = '\ue00c'
SPACE = '\ue00d'
PAGE_UP = '\ue00e'
PAGE_DOWN = '\ue00f'
END = '\ue010'
HOME = '\ue011'
LEFT = '\ue012'
ARROW_LEFT = LEFT
UP = '\ue013'
ARROW_UP = UP
RIGHT = '\ue014'
ARROW_RIGHT = RIGHT
DOWN = '\ue015'
ARROW_DOWN = DOWN
INSERT = '\ue016'
DELETE = '\ue017'
SEMICOLON = '\ue018'
EQUALS = '\ue019'
NUMPAD0 = '\ue01a' # number pad keys
NUMPAD1 = '\ue01b'
NUMPAD2 = '\ue01c'
NUMPAD3 = '\ue01d'
NUMPAD4 = '\ue01e'
NUMPAD5 = '\ue01f'
NUMPAD6 = '\ue020'
NUMPAD7 = '\ue021'
NUMPAD8 = '\ue022'
NUMPAD9 = '\ue023'
MULTIPLY = '\ue024'
ADD = '\ue025'
SEPARATOR = '\ue026'
SUBTRACT = '\ue027'
DECIMAL = '\ue028'
DIVIDE = '\ue029'
F1 = '\ue031' # function keys
F2 = '\ue032'
F3 = '\ue033'
F4 = '\ue034'
F5 = '\ue035'
F6 = '\ue036'
F7 = '\ue037'
F8 = '\ue038'
F9 = '\ue039'
F10 = '\ue03a'
F11 = '\ue03b'
F12 = '\ue03c'
META = '\ue03d'
COMMAND = '\ue03d'
實(shí)例詳解:
百度注冊頁面当辐,我們把手機(jī)號碼輸入框中的數(shù)據(jù),通過鍵盤按鍵Ctrl + C 鲤看、Ctrl + V復(fù)制到用戶名輸入框
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
# 模擬鍵盤操作-百度登錄頁面
driver = webdriver.Chrome()
driver.get("https://passport.baidu.com/v2/?reg")
# 用戶名元素定位和手機(jī)號元素定位
name_element=driver.find_element_by_css_selector("#TANGRAM__PSP_3__userName")
phone_element=driver.find_element_by_css_selector("#TANGRAM__PSP_3__phone")
# 在名字輸入框輸入10個數(shù)字鍵3
name_element.send_keys(Keys.NUMPAD3*10)
# 在手機(jī)號輸入框輸入手機(jī)號碼
phone_element.send_keys("18812345678")
# 在手機(jī)號輸入框進(jìn)行組合鍵Ctrl+a 缘揪、 Ctrl+x
phone_element.send_keys(Keys.CONTROL, "a")
sleep(1)
phone_element.send_keys(Keys.CONTROL, "x")
# 在名字輸入框輸入組合鍵Ctrl+v
name_element.clear()
name_element.send_keys(Keys.CONTROL, "v")