selenium.模拟键盘操作(Keys)
Keys源码:
NULL = '\ue000' CANCEL = '\ue001' # ^break HELP = '\ue002' BACKSPACE = '\ue003' BACK_SPACE = BACKSPACE #删除键 TAB = '\ue004' #TAB键 CLEAR = '\ue005' RETURN = '\ue006' ENTER = '\ue007' #回车键 SHIFT = '\ue008' #Shift键 LEFT_SHIFT = SHIFT CONTROL = '\ue009' LEFT_CONTROL = CONTROL #Ctrl 键 ALT = '\ue00a' #Alt 键 LEFT_ALT = ALT PAUSE = '\ue00b' ESCAPE = '\ue00c' #ECS键 SPACE = '\ue00d' #空格键 PAGE_UP = '\ue00e' #PgUp 键 PAGE_DOWN = '\ue00f' #PgDwon 键 END = '\ue010' #END 键 HOME = '\ue011' #HOME 键 LEFT = '\ue012' #左键 ARROW_LEFT = LEFT UP = '\ue013' #上键 ARROW_UP = UP RIGHT = '\ue014' ARROW_RIGHT = RIGHT #右键 DOWN = '\ue015' #下键 ARROW_DOWN = DOWN INSERT = '\ue016' #insert键 DELETE = '\ue017' #del键 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'
组合键:
send_keys(Keys.BACK_SPACE) 删除键(BackSpace) send_keys(Keys.SPACE) 空格键(Space) send_keys(Keys.TAB) 制表键(Tab) send_keys(Keys.ESCAPE) 回退键(Esc) send_keys(Keys.ENTER) 回车键(Enter) send_keys(Keys.CONTROL,'a') 全选(Ctrl+A) send_keys(Keys.CONTROL,'c') 复制(Ctrl+C) send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V) send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
非组合键:
Keys.ENTER 回车键
Keys.BACK_SPACE 删除键
Keys.SPACE 空格键
Keys.TAB 制表键
Keys.ESCAPE 回退键
Keys.F5 刷新键
百度首页做个练习,效果如GIF:
from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.keys import Keys from selenium import webdriver from time import sleep driver = webdriver.Chrome() action = ActionChains(driver) driver.get('https://www.baidu.com') mov = driver.find_element_by_link_text('设置') action.move_to_element(mov).perform() sleep(1) action.move_to_element_with_offset(mov, 0, 60).click().perform() sleep(1) input01 = driver.find_element_by_xpath('//*[@id="adv_keyword"]') input02 = driver.find_element_by_xpath('//*[@id="adv-setting-2"]/input') input03 = driver.find_element_by_xpath('//*[@id="adv-setting-3"]/input') input04 = driver.find_element_by_xpath('//*[@id="advanced"]/div/form/div/table/tbody/tr[4]/td[2]/input') input01.send_keys("云想衣裳花想容") sleep(1) input01.send_keys(Keys.CONTROL, 'a') input01.send_keys(Keys.BACK_SPACE) sleep(1) input02.send_keys("云想衣裳花想容,春风拂槛露华浓。") sleep(1) input03.send_keys(Keys.TAB, "若非群玉山头见,会向瑶台月下逢。") sleep(1) driver.quit()
分类:
python.selenium
标签:
selenium
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗