Helium文档5-WebUI自动化-press模拟键盘按键输入技巧
前言
press方法是用来模拟键盘按键输入,可以组合使用,来模拟键盘输入,解决一些难定位的元素
入参介绍
以下是press源码中的函数介绍
| def press(key): | |
| :入参 | :param key: Key or combination of keys to be pressed. |
| Presses the given key or key combination. To press a normal letter key such | |
| as 'a' simply call `press` for it:: | |
| 举例 1 | press('a') |
| You can also simulate the pressing of upper case characters that way:: | |
| 举例2 | press('A') |
| The special keys you can press are those given by Selenium's class | |
| :py:class:`selenium.webdriver.common.keys.Keys`. Helium makes all those keys | |
| available through its namespace, so you can just use them without having to | |
| refer to :py:class:`selenium.webdriver.common.keys.Keys`. For instance, to | |
| press the Enter key:: | |
| 举例3 | press(ENTER) |
| To press multiple keys at the same time, concatenate them with `+`. For | |
| example, to press Control + a, call:: | |
| 举例4 | press(CONTROL + 'a') |
| """ | |
| _get_api_impl().press_impl(key) |
以下是所有的入参关键字:
| NULL = Keys.NULL |
| CANCEL = Keys.CANCEL |
| HELP = Keys.HELP |
| BACK_SPACE = Keys.BACK_SPACE |
| TAB = Keys.TAB |
| CLEAR = Keys.CLEAR |
| RETURN = Keys.RETURN |
| ENTER = Keys.ENTER |
| SHIFT = Keys.SHIFT |
| LEFT_SHIFT = Keys.LEFT_SHIFT |
| CONTROL = Keys.CONTROL |
| LEFT_CONTROL = Keys.LEFT_CONTROL |
| ALT = Keys.ALT |
| LEFT_ALT = Keys.LEFT_ALT |
| PAUSE = Keys.PAUSE |
| ESCAPE = Keys.ESCAPE |
| SPACE = Keys.SPACE |
| PAGE_UP = Keys.PAGE_UP |
| PAGE_DOWN = Keys.PAGE_DOWN |
| END = Keys.END |
| HOME = Keys.HOME |
| LEFT = Keys.LEFT |
| ARROW_LEFT = Keys.ARROW_LEFT |
| UP = Keys.UP |
| ARROW_UP = Keys.ARROW_UP |
| RIGHT = Keys.RIGHT |
| ARROW_RIGHT = Keys.ARROW_RIGHT |
| DOWN = Keys.DOWN |
| ARROW_DOWN = Keys.ARROW_DOWN |
| INSERT = Keys.INSERT |
| DELETE = Keys.DELETE |
| SEMICOLON = Keys.SEMICOLON |
| EQUALS = Keys.EQUALS |
| NUMPAD0 = Keys.NUMPAD0 |
| NUMPAD1 = Keys.NUMPAD1 |
| NUMPAD2 = Keys.NUMPAD2 |
| NUMPAD3 = Keys.NUMPAD3 |
| NUMPAD4 = Keys.NUMPAD4 |
| NUMPAD5 = Keys.NUMPAD5 |
| NUMPAD6 = Keys.NUMPAD6 |
| NUMPAD7 = Keys.NUMPAD7 |
| NUMPAD8 = Keys.NUMPAD8 |
| NUMPAD9 = Keys.NUMPAD9 |
| MULTIPLY = Keys.MULTIPLY |
| ADD = Keys.ADD |
| SEPARATOR = Keys.SEPARATOR |
| SUBTRACT = Keys.SUBTRACT |
| DECIMAL = Keys.DECIMAL |
| DIVIDE = Keys.DIVIDE |
| F1 = Keys.F1 |
| F2 = Keys.F2 |
| F3 = Keys.F3 |
| F4 = Keys.F4 |
| F5 = Keys.F5 |
| F6 = Keys.F6 |
| F7 = Keys.F7 |
| F8 = Keys.F8 |
| F9 = Keys.F9 |
| F10 = Keys.F10 |
| F11 = Keys.F11 |
| F12 = Keys.F12 |
| META = Keys.META |
| COMMAND = Keys.COMMAND |
press案例分析
1、我们来介绍一下滚动页面的应用
代码:
start_chrome("https://www.icourse163.org/")
time.sleep(2)
wait_until(Text("学校").exists)
highlight(Text("学校"))
time.sleep(2)
click(Text("学校"))
press(END)
time.sleep(10)
kill_browser()
效果:
看到右侧滚动条已经滚动到最下方

2、利用TAB键切换位置
如下图,先定位“1”,press(TAB),跳转到“贴吧搜索”,press(TAB),跳转到“2”,press(TAB),跳转到“3”

Helium文档5-WebUI自动化-press模拟键盘按键输入技巧的更多相关文章
- UI自动化测试(四)AutoIT工具使用和robot对象模拟键盘按键操作
AutoIT简介 AutoIt 目前最新是v3版本,这是一个使用类似BASIC脚本语言的免费软件,它设计用于Windows GUI(图形用户界面)中进行自动化操作.它利用模拟键盘按键,鼠标移动和窗口/ ...
- C#窗体模拟键盘按键(组合键)产生事件 ---- 通过keybd_event()函数
如何模拟键盘按键触发产生的事件,比如模拟按下Alt + F4 关闭当前程序,Ctrl+Shift 切换输入法等 可以通过win32api 键盘事件 keybd_event() 来实现 1.定义键盘按键 ...
- C#窗体如何通过keybd_event()函数模拟键盘按键(组合键)产生事件
如何模拟键盘按键触发产生的事件,比如模拟按下Alt + F4 关闭当前程序,Ctrl+Shift 切换输入法等 可以通过win32api 键盘事件 keybd_event() 来实现 1.定义键盘按键 ...
- C/C++使用keybd_event模拟键盘按键
#include <stdio.h> #include <Windows.h> /* 设置键盘大小写状态 big:为TRUE则切换大写状态,否则切换小写状态 */ VOID M ...
- golang实现模拟键盘按键
公司前段时间要我写个小项目需要可以局域网内一个ipad控制另一台pc上的键盘输入,github上找了找,居然有个robotgo库这么神级的存在,感觉go的库真是越来越多了,虽然大部分都是第三方的.ht ...
- Delphi定时模拟键盘按键例程
delphi模拟键盘按键实例delphi模拟键盘按键实例,只是模拟一个按键的例子而已.到一定时间按下模拟按下一个按键,delphi7编译通过. 10秒点击一下H键,其他键你们去找数值替换吧,网上大把的 ...
- Helium文档1-WebUI自动化-环境准备与入门
前言 Helium 是一款 Web 端自动化开源框架,全称是:Selenium-Python-Helium,从名字上就可以看出,Helium 似乎和 Selenium 息息相关,基于Selenium的 ...
- JS文档和Demo自动化生成工具 - SmartDoc发布
曾几何时,当你码神附体,一路披荆斩棘的完成代码后,带着“一码在手,天下我有”的傲然环顾之时,却发现单元测试.API文档.Demo实例陆续向你砸来,顿时有木有一种冰水挑战后的感觉.而这时你应该:哟哟,快 ...
- SpringBoot18 Swagger、API接口文档生成、WireMock、模拟后台数据
1 Swagger 1.1 简述 前后端分离的项目需要前后端开发人员协同工作,后台开发人员需要给到前端开发者一套API文档:利用Swagger可以简单高效的帮助后台开发者生成RestfulAPI开发文 ...
随机推荐
- Java源码之HashMap的hash篇
提到哈希,我们脑袋中立马就会闪过一个方法,就是hashCode(),没错.就是这个! 我们知道HashMap是通过 数组+链表 的结构进行数据存储的,有数组就会有索引,而HashMap内的数据要存储在 ...
- [Spark]Spark、Yarn 入门
Spark在集群上的运行模式 链接: http://spark.apache.org/docs/latest/cluster-overview.html Component章节 总结: 1 Each ...
- 万字详解TDengine 2.0整体架构设计思路
导读:涛思数据8月3日将TDengine 的集群功能开源,TDengine具有超强的性能和功能,为什么能做到?它到底有哪些技术创新?今将TDengine的整体设计文档分享出来. 1: 数据模型 物联 ...
- Redis5设计与源码分析读后感(四)压缩列表
一.引言 上一节我们总结了跳跃表的知识,我们知道了有序数组可以用跳跃表实现,也可以用压缩列表来实现,这一篇文章我们来总结一下压缩列表相关的知识. 二.压缩列表简介 定义:压缩列表 ziplist 本质 ...
- 超详细的 Vagrant 上手指南
搭建 Linux 虚拟机,别再用 VirtualBox 从 .iso 文件安装了. 概述 2020 年了,也许你已经习惯了 docker,习惯了在 XX 云上快速创建云主机,但是如果你想在个人电脑上安 ...
- 开源 UI 库中,唯一同时实现了大表格虚拟化和树表格的 Table 组件
背景 有这样一个需求,一位 React Suite(以下简称 rsuite)的用户,他需要一个 Table 组件能够像 Jira Portfolio 一样,支持树形数据,同时需要支持大数据渲染. 截止 ...
- 069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求
069 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 01 综合案例-数组移位-案例需求 本文知识点:综合案例-数组移位-案例需求 说明:因为时间紧张,本人写博客 ...
- P5911 [POI2004]PRZ (状态压缩dp+枚举子集)
题目背景 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 题目描述 桥已经很旧了, 所以它不能承受太重的东西.任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍过桥时 ...
- 创建自定义视图在Android矩阵效果画布教程
介绍 下面是一个快速教程,教你如何在Android中创建自定义视图.自定义视图创建一个矩阵雨效果. 本教程发布在http://www.androidlearner.com/. 背景 下面是关于如何工作 ...
- 汕尾6397.7539(薇)xiaojie:汕尾哪里有xiaomei
汕尾哪里有小姐服务大保健[微信:6397.7539倩儿小妹[汕尾叫小姐服务√o服务微信:6397.7539倩儿小妹[汕尾叫小姐服务][十微信:6397.7539倩儿小妹][汕尾叫小姐包夜服务][十微信 ...