Selenium+python自动化(四十六)
Selenium+python自动化(四十六)
前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(你可能首先想到的是,定位!定位!定位) 有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果。
Selenium+python自动化(四十六)
前言
在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(你可能首先想到的是,定位!定位!定位)
有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果。
PyKeyboard键盘操作
PyUserInput模块里面主要有两个类
- PyMouse,专门模拟鼠标操作
- PyKeyboard,专门模拟键盘上的操作
先用手工在键盘上操作下,记住操作步骤:按Tab键Eneter键
因为暂无上图中的场景,那么咱可以使用alert窗口
参考:Seleniumpython自动化(十四)--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(_key)
kb.release_key(_key)time.sleep(2)
#发送回车
kb.press_key(_key)
kb.release_key(_key)
这里用到了两个方法,一个时press_key按住Tab/Enter键,另外一个是release_key释放按键。其实还有个方法tap_key
tap_key模拟点击
先看下tap_key源码是怎么设计的,实际上tap_key就是封装的press_key和release_key这2个方法
- character 传对应的键盘事件
- n=1 默认只点一次
- interval=0 如果有多次点击操作,中间的间隙时间,默认sleep时间为0
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(_key)
# kb.release_key(_key)# _key(_key) #tap_key方法,点击一次
_key(_key,2) #tap_key方法,点击2次
time.sleep(2)
#发送回车
# kb.press_key(_key)
# kb.release_key(_key)
_key(_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:_key(i)_key(_key)
input_s(hello)
#发送tab键
_key(_key) #tap_key方法,点击一次
time.sleep(2)
#发送回车
_key(_key)
如下,在浏览器下的输入框中输入,并搜索
# coding:utf-8
from selenium import webdriver
from pykeyboard import PyKeyboard
import time
driver=webdriver.Chrome()
driver.get()
k=PyKeyboard()_key( h ) #一次只能输入一个字母
_key(_key) #将字母键入输入框
time.sleep(2)
_key(_key)#百度一下
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2024-01-18 06:30:37
上一篇:oracle 触发器脚本
推荐阅读
留言与评论(共有 8 条评论) |
本站网友 南昌银行网上银行 | 18分钟前 发表 |
Selenium+python自动化(四十六) 前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(你可能首先想到的是,定位!定位!定位) 有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果 | |
本站网友 南通紫琅职业技术学院 | 26分钟前 发表 |
self.press_key(character)self.release_key(character)time.sleep(interval) 改成tap_key操作 # coding | |
本站网友 affirmation | 25分钟前 发表 |
for i in x | |
本站网友 银杏属于什么种类水果 | 19分钟前 发表 |
其实还有个方法tap_key tap_key模拟点击 先看下tap_key源码是怎么设计的,实际上tap_key就是封装的press_key和release_key这2个方法 character 传对应的键盘事件n=1 默认只点一次interval=0 如果有多次点击操作,中间的间隙时间,默认sleep时间为0 def tap_key(self | |
本站网友 藕粉怎么冲 | 2分钟前 发表 |
utf-8 from selenium import webdriver from pykeyboard import PyKeyboard import time driver=webdriver.Chrome() driver.get() k=PyKeyboard()_key( h ) #一次只能输入一个字母 _key(_key) #将字母键入输入框 time.sleep(2) _key(_key)#百度一下 | |
本站网友 naturemade | 2分钟前 发表 |
/Users/Administrator/Desktop/1.html) driver.find_element_by_id(prompt).click() kb=PyKeyboard() #发送tab键 kb.press_key(_key) kb.release_key(_key)time.sleep(2) #发送回车 kb.press_key(_key) kb.release_key(_key) 这里用到了两个方法,一个时press_key按住Tab/Enter键,另外一个是release_key释放按键 | |
本站网友 和平村英语 | 9分钟前 发表 |
Press and release a given character key n times.for i in range(n) |