appium---模拟点击事件
在做自动化的过程中都会遇到一些无法定位到的地方,或者通过元素怎么都定位不成功的地方,这个时候我们可以使用必杀技,通过坐标定位。具体的怎么操作呢?
swipe点击事件
前面安静写过一篇关于swipe的滑动app页面的,其实swipe也可以模拟点击事件,只要我们把后面的响应时间变小,然后坐标变成同一个坐标。详情swipe的用法可以参考appium---App页面滑动
通过工具查看到这个登录/注册按钮坐标为[390,831][522,873],算得出来大概坐标为[470,850]
话不多说直接上代码,通过swipe进行模拟点击(注册/登录)按钮
- # coding:utf-8
- from appium import webdriver
- import time
- desired_caps = {
- 'platformName': 'Android', # 测试版本
- 'deviceName': 'emulator-5554', # 设备名
- 'platformVersion': '5.1.1', # 系统版本
- "appPackage": "com.taobao.taobao", # app包名
- "appActivity": "com.taobao.tao.welcome.Welcome", # 启动launch Activity
- "noReset": True, # 不清空数据
- }
- driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
- # 淘宝加载慢,加个延迟。
- time.sleep(16)
- x1 = int(470)
- y1 = int(850)
- driver.swipe(x1,y1,x1,y1,500)
一个方法可以多种用法,但是python怎么会这样对待我们呢?当然有比这更好的方法
tap
tap方法表示点击事件,通过坐标的方式进行点击,一般用于元素难于定位的时候
源码
- def tap(self, positions, duration=None):
- """Taps on an particular place with up to five fingers, holding for a certain time
- # 用五指轻敲一个特定的地方,保持一定的时间
- :Args:
- - positions - an array of tuples representing the x/y coordinates of
- # 表示x/y坐标的元组数组
- the fingers to tap. Length can be up to five.
- - duration - (optional) length of time to tap, in ms
- # 持续时间单位毫秒
- :Usage:
- driver.tap([(100, 20), (100, 60), (100, 100)], 500)
- """
这里我们可以直接通过右侧bonds属性上坐标直接定位,不用我们在一个个计算
- # coding:utf-8
- from appium import webdriver
- import time
- desired_caps = {
- 'platformName': 'Android', # 测试版本
- 'deviceName': 'emulator-5554', # 设备名
- 'platformVersion': '5.1.1', # 系统版本
- "appPackage": "com.taobao.taobao", # app包名
- "appActivity": "com.taobao.tao.welcome.Welcome", # 启动launch Activity
- "noReset": True, # 不清空数据
- }
- driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
- time.sleep(16)
- # 通过tap模拟点击
- driver.tap([(390,831),(522,873)],500)
注意:更换手机跑脚本的时候,我们一定要更换坐标,每个手机的坐标可能都不同。
其实方法还有很多种,这里就先不一个个介绍了,持续更新中~~~
appium---模拟点击事件的更多相关文章
- 使用AccessibilityService模拟点击事件失败的分析
使用AccessibilityService模拟点击事件的方法: AccessibilityNodeInfo.performAction(AccessibilityNodeInfo.ACTION_CL ...
- js模拟点击事件实现代码
js模拟点击事件实现代码 类型:转载 时间:2012-11-06 在实际的应用开发中,我们会常常用到JS的模事件,比如说点击事件,举个简单的例子,点击表单外的"提交"按钮来提交表单 ...
- jquery click()方法模拟点击事件对a标签不生效的解决办法
阅读数:8971 <a href="www.baidu.com"></a> 1 问题分析 点击A标签本身,并不会触发跳转到指定链接的事件,就是说,我们平时都 ...
- jquery click()方法模拟点击事件对a标签不生效
if(e.keyCode == 13) { $items.eq(index).click(); return; } 搜索框下拉列表模拟点击时间,使用上述代码不能触发链接跳转 1,页面使用了bootst ...
- jquery模拟点击事件
在某些情况下,我们需要自动执行一些点击事件.比如:一些 tab 一般是通过点击事件来加载不同的数据内容. 而如果要页面加载完直接显示第三个 tab,怎么办呢?此时就需要用到 jQuery 的模拟点击事 ...
- appium+python自动化37-adb shell模拟点击事件(input tap)
前言 appium有时候定位一个元素很难定位到,或者说明明定位到这个元素了,却无法点击,这个时候该怎么办呢? 求助大神是没用的,点击不了就是点击不了,appium不是万能的,这个时候应该转换思路,换其 ...
- appium+python自动化-adb shell模拟点击事件(input tap)
前言 appium有时候定位一个元素很难定位到,或者说明明定位到这个元素了,却无法点击,这个时候该怎么办呢? 求助大神是没用的,点击不了就是点击不了,appium不是万能的,这个时候应该转换思路,换其 ...
- adb shell模拟点击事件(input tap)
前言:appium定位也不是万能的,有些元素还是定位不到,这个时候只能换一个方式定位了,可以使用这个adb shell模拟点击. 1.input可以实现的功能 输入文本信息:input text gu ...
- 使用adb shell 模拟点击事件
针对问题[appium无法点击到某一内容,需要使用adb去执行点击事件] 需要命令: adb shell adb devices input [input可以实现的功能]: 输入文本信息:input ...
- 【CSS-进阶之元素:focus伪类模拟点击事件】
先放上我们最终实现的效果 注:这里建议插入codepen(临时使用图片代替) 我们想要实现当点击某个元素时,显示一个tip浮动框. html: <div class="wrapper& ...
随机推荐
- scikit-learn与数据预处理
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 用span写一个特殊样式的1
用span写一个如下样式的 1 span { display: inline-block; width: 17px; height: 17px; background: var(--themeColo ...
- CentOS 7.4搭建LAMP,LAMP:Linux、Apache、MySQL、PHP
CentOS 7.4搭建LAMP,LAMP:Linux.Apache.MySQL.PHP. 目录: 第一部分 准备工作 第二部分 安装Apache服务 第三部分 安装MySQL服务 第四部分 搭建PH ...
- Mysql添加path变量
前提: 系统环境:Linux,服务器:阿里云轻量应用服务器 背景: 阿里云轻量应用服务器自带 mysql5.7,但是没有配置环境变量,因此直接输入 mysql -u root -p 将提示 comma ...
- ASP.NET Core开发者指南()
你可以在下面找到一张图,该图展示了你可以选取的路径及你想学习的库,从而成为一名 ASP.NET Core 开发者.“作为 ASP.NET Core 开发者,我接下来应该学习什么?”,我把这张图作为建议 ...
- NodeJS4-1静态资源服务器实战_实现访问获取里面的内容
.gitignore 匹配模式前 / 代表项目根目录 匹配模式最后加 / 代表是目录 匹配模式前加 ! 代表取反 * 代表任意一个字符 ? 匹配任意一个字符 ** 匹配多级目录 统一代码风格配置可以用 ...
- webpack实践(四)- html-webpack-plugin
webpack系列博客中代码均在github上:https://github.com/JEmbrace/webpack-practice <webpack实践(一)- 先入个门> < ...
- Docker入门-笔记-1
Docker入门 Docker 是 Golang 编写的, 自 2013 年推出以来,受到越来越多的开发者的关注.如果你关注最新的技术发展,那么你一定听说过 Docker.不管是云服务还是微服务(Mi ...
- VS2019添加Link to SQL类之后,LinqDataSource配置数据源没有可选项
原创. 环境:visual studio 2019 ,.net framwork 4.0 问题: 1.新建Linq to SQL类后(.dbml文件),从服务器资源管理面板中数据库连接中,把表Mill ...
- sqlserver update join 多关联更新
由于程序bug,导致之前很多数据入库后信息不全,好在有基础信息表,可以通过基础信息表更新缺失字段信息 1.通过 inner join语法实现多关联更新 update a set a.name = b. ...