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& ...
随机推荐
- BZOJ[HNOI2005]狡猾的商人(差分约束)
1202: [HNOI2005]狡猾的商人 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4969 Solved: 2496[Submit][Sta ...
- AtCoder-3856
An adult game master and N children are playing a game on an ice rink. The game consists of K rounds ...
- CodeForces999A-Mishka and Contest
A. Mishka and Contest time limit per test 1 second memory limit per test 256 megabytes input standar ...
- ARTS-S mac终端ftp命令行上传下载文件
上传 ftp -u ftp://root:123456@10.11.12.3/a.txt a.txt 下载 ftp -o a.txt ftp://root:123456@10.11.12.13/a.t ...
- Django 06
目录 注意 聚合查询 分组查询 F与Q查询 orm字段和参数 自定义字段类型 事务 ACID 三大范式 开启事务 注意 只要和数据库相关的功能, 基本在 django.db.models 里面 聚合查 ...
- ruby 使用 rqrcode 生成二维码
参考: https://github.com/whomwah/rqrcode 1. gem 'rqrcode' 2. 在helper中: require 'base64' def generat ...
- screen虚拟终端工具
说明:有时候我们要执行一个命令或脚本,需要几小时甚至几天,但是不能中断,有时想查看当前输出信息的时候,可以将它丢到后台运行,但是后台运行却无法显示或输出相关信息出来:我们可以使用一个虚拟终端工具scr ...
- 【Java Web开发学习】Spring MVC整合WebSocket通信
Spring MVC整合WebSocket通信 目录 ========================================================================= ...
- tomcat启动内存溢出三种解决方案:java.lang.OutOfMemoryError:PermGen space解决办法
问题: 严重: Error waiting for multi-thread deployment of WAR files to completejava.util.concurrent.Execu ...
- Nginx优化之一
一.Nginx安全优化 1.1:隐藏nginx版本信息 官方配置参数说明:http://nginx.org/en/docs/http/ngx_http_core_module.html#server_ ...