标签:sele nis 除了 pre bdr tab键 image mini NPU
前言
在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(你可能首先想到的是,定位!定位!定位)
有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果。
PyKeyboard键盘操作
PyUserInput模块里面主要有两个类
先用手工在键盘上操作下,记住操作步骤:按Tab键+Eneter键
因为暂无上图中的场景,那么咱可以使用alert窗口
参考:Selenium3+python3自动化(十四)--alert\confirm\prompt
点击【prompt】按钮,默认在输入框上,按一次tab键切换到【确定】按钮上,按二次tab键切换到【取消】按钮上
参考代码
# coding:utf-8 from selenium import webdriver from pykeyboard import PyKeyboard # from pymouse import PyMouse import time driver=webdriver.Chrome() driver.get("file:///C:/Users/Administrator/Desktop/1.html") driver.find_element_by_id("prompt").click() kb=PyKeyboard() #发送tab键 kb.press_key(kb.tab_key) kb.release_key(kb.tab_key) time.sleep(2) #发送回车 kb.press_key(kb.enter_key) kb.release_key(kb.enter_key)
这里用到了两个方法,一个时press_key按住Tab/Enter键,另外一个是release_key释放按键。其实还有个方法tap_key
tap_key模拟点击
先看下tap_key源码是怎么设计的,实际上tap_key就是封装的press_key和release_key这2个方法
def tap_key(self, character=‘‘, n=1, interval=0): """Press and release a given character key n times.""" for i in range(n): self.press_key(character) self.release_key(character) time.sleep(interval)
改成tap_key操作
# coding:utf-8 from selenium import webdriver from pykeyboard import PyKeyboard # from pymouse import PyMouse import time driver=webdriver.Chrome() driver.get("file:///C:/Users/Administrator/Desktop/1.html") driver.find_element_by_id("prompt").click() kb=PyKeyboard() #发送tab键 # kb.press_key(kb.tab_key) # kb.release_key(kb.tab_key) # kb.tap_key(kb.tab_key) #tap_key方法,点击一次 kb.tap_key(kb.tab_key,2) #tap_key方法,点击2次 time.sleep(2) #发送回车 # kb.press_key(kb.enter_key) # kb.release_key(kb.enter_key) kb.tap_key(kb.enter_key)
PyKeyboard其它操作
除了能模拟tab,enter这种操作,也能模拟在输入框输入内容
基本操作方法;如输入h:tap_key("h")
如下,在弹出框的输入框输入
# coding:utf-8 from selenium import webdriver from pykeyboard import PyKeyboard # from pymouse import PyMouse import time driver=webdriver.Chrome() driver.get("file:///C:/Users/Administrator/Desktop/1.html") driver.find_element_by_id("prompt").click() kb=PyKeyboard() def input_s(x): for i in x: kb.tap_key(i) kb.tap_key(kb.enter_key) input_s("hello") #发送tab键 kb.tap_key(kb.tab_key) #tap_key方法,点击一次 time.sleep(2) #发送回车 kb.tap_key(kb.enter_key)
如下,在浏览器下的输入框中输入,并搜索
# coding:utf-8 from selenium import webdriver from pykeyboard import PyKeyboard import time driver=webdriver.Chrome() driver.get("https://www.baidu.com") k=PyKeyboard() k.tap_key(‘h‘) #一次只能输入一个字母 k.tap_key(k.enter_key) #将字母键入输入框 time.sleep(2) k.tap_key(k.enter_key)#百度一下
Selenium3+python3自动化(四十六)--弹窗处理(PyKeyboard) tab切换,enter回车,输入
标签:sele nis 除了 pre bdr tab键 image mini NPU
原文地址:https://www.cnblogs.com/canglongdao/p/13617614.html