手势操作

Appium模拟手势高级操作

筅森魡賤 提交于 2020-02-03 04:41:16
Appium模拟手势高级操作 TouchAction是AppiumDriver的辅助类,主要针对手势操作,比如滑动、长按、拖动等, 原理是将一系列的动作放在一个链条中发送到服务器,服务器接受到该链条后,解析各个动作,逐个执行。 1.前置代码 from appium import webdriver # server 启动参数 desired_caps = {} # 设备信息 desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' desired_caps['deviceName'] = '192.168.56.101:5555' # app的信息 desired_caps['appPackage'] = 'com.android.settings' desired_caps['appActivity'] = '.Settings' # 声明我们的driver对象 driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) ⚠️ 所有手势都要通过执行函数才会运行. 2.手指轻敲操作 模拟手指轻敲一下屏幕操作 方法:tap(element=None, x=None, y=None) 方法

UIView详解

隐身守侯 提交于 2020-01-29 04:15:26
UIView详解(http://www.beyondabel.com/blog/2014/01/01/uiview/) 引言 UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为iOS中几乎所有可视化控件都是UIView的子类。负责渲染区域的内容,并且响应该区域内发生的触摸事件 目录 1、UIView家族 2、UIView的基本属性 3、几何方法类 4、控制级别类 5、渲染类 6、动画类 7、手势类 8、移动效果类 9、基于布局约束类(iOS6.0) 10、基于布局的约束core方法(iOS 6.0) 11、基于约束的兼容性(iOS 6.0) 12、层次布局的约束(iOS 6.0) 13、设备大小布局约束(iOS 6.0) 14、布局调度(iOS 6.0) 15、状态恢复(iOS 6.0) 16、快照 (iOS7.0) 1、UIView家族 下图就是视图的内层次 2、UIView的基本属性 // UIView是否接受events事件,默认为YES BOOL userInteractionEnabled; // 用于做标识所用,默认为0 NSInteger tag; // Core Animation layer有关,在常用方法中再详细讲解 CALayer *layer; // UIView在父视图中的位置 如果是在变形的时候不要用frame

移动设计八原则

廉价感情. 提交于 2020-01-26 04:37:53
移动设计八原则 近几年,交互设计专业也有了蓬勃发展, Alan Cooper 、 Donald Norman 等人为交互设计提供了许多理论上的支持, Ben Shneiderman 提出的交互设计“黄金八法”和 Nielsen 的“启发式评估 10 条原则”为交互设计的评估提供了标准,所有这些理论和原则在移动应用的设计上依然是通用的。但移动应用有其特殊性,在设备和情景上都与普通的设计不同。因此,我们在考虑其他原则的基础上,整理了八条移动应用设计的针对性原则。 一、内容优先 对于手机而言,屏幕空间资源显得非常珍贵。为了提升屏幕空间的利用率,界面布局应以内容为核心,而提供符合用户期望的内容是移动应用获得成功的关键。如何设计和组织内容,使用户能快速理解移动应用所提供的内容,使内容真正有意义,这是非常重要的。 重组内容,使内容符合移动的特征 在 PC 上的网页内容往往相对复杂,在进行内容移动化时,并不合适把内容直接照搬到手机端。在进行移动应用设计时,应该重组内容,使其符合移动应用的特征。 移 动应用的内容应使用用户的语言,以用户熟悉的维度来组织内容,这样更容易查找目标信息,提升内容的利用率;删除无关的多余内容,让内容更简洁清晰,考虑在 小屏幕空间可以合理的布局,增加屏幕的利用率;内容要是清晰和具体的,是用户恰好需要的;内容要是有情景特征的,可以在不同的情景下给用户提供不同的情景 下的内容。

appium自动化之手势操作总结(附带手势解锁)

☆樱花仙子☆ 提交于 2020-01-25 11:19:20
说说常用appium做自动化经常会用到的手势操作。 声明:所有的手势操作都会用到这个模块 from appium.webdriver.common.touch_action import TouchAction 操作时都得传入driver对象,执行时都用上.perfrom()才能生效,使用move_to根据坐标移动手势,记得打开开发者模式里面的指针位置 1:轻敲 tap,类似于click点击 使用方法:可以传元素或者是坐标 # todo 传元素点击轻敲 TouchAction(driver).tap(more_button).perform() todo 传坐标点击 TouchAction(driver).tap(x=680,y=1045).perform() 2:按压 press 使用方法:可以传元素或者是坐标 el = driver.find_element_by_xpath('//*[@text="开放源代码许可"]') # todo 按压5秒后释放 TouchAction(driver).press(el).wait(5000).release().perform() 3:长按 long_press 使用方法:可以传元素或者是坐标 # todo 长按6秒 el = driver.find_element_by_xpath('//*[@text="WiredSSID"]')

如何造一个『为移动端而生』的日历

谁说我不能喝 提交于 2020-01-21 16:00:51
之前写了一篇 Calendar -『为移动端而生』的自定义日历 ,一直有童鞋对这个插件的手势处理存在一些问题,所以想写篇文章,来说说它的成长史~ 在阅读本文之前,确保你有稍微看过 calendar 的效果 喔~ 点击查看github, 查看calendar源码 也可以在 NPM上搜索 mob-calendar 找到它。 一、 确认需求 想做一个日历最主要的原因,当然还是因为在开发过程中频繁的遇到。而且对日历的需求又是奇葩到不行,市面上的插件都满足不了我们产品的需求。所以,我不得不动手自己造。 这段话,好像在造 上一个插件 - 级联选择器 的时候也说过 大家就当无事发生过(⁎⁍̴̛ᴗ⁍̴̛⁎) 首要问题依然是处理需求: 第1个问题:『日历的出现场景有哪些特点?』 用户不确定自己要选择的时间点或时间范围,需要一些基本的时间参照单位,比如“ 下星期一 ”、“ 下个周末 ”。 用户需要查看某个时间区间,之后再有选择性的选取时间点或时间范围,比如“ 尽可能避开周末的20天翘班请假计划 ”。 用户需要查看某个时间区间的行为记录,比如“ 查看过去几周的打卡情况 ” 当出现以上问题的时候,日历的时间定位优势就显示出来了。 第2个问题:『日历会有哪些奇葩需求?』 日历存在着点击事件,点击事件是 跳转事件 还是 高亮事件 无法预知。 日历存在着选取操作,选取的结果是 时间点 还是 时间范围 无法预知。

跨终端电商平台的实现之手势效果(左右滑动)

混江龙づ霸主 提交于 2020-01-21 09:20:38
移动端人机交互方式同PC端发生了本质的变化,在PC端使用鼠标和键盘进行交互,而移动端使用的是手指的触摸和滑动。PC端开发时主要监听鼠标事件,例如mouseEnter(鼠标进入事件)、mouseMove(鼠标移动事件)、mouseLeave(鼠标离开事件)。而在移动端监听事件为触摸的开始事件,触摸移动事件,以及触摸的结束事件。在本设计中商品详情页通过选项卡来达到切换显示基本信息、商品细节信息以及评论信息。在基本信息通过幻灯效果显示商品的大图,通过手指的滑动来控制幻灯的显示。移动端手势操作效果图: 实现的方法是监听手势的开始事件,记录手指在屏幕上的起始位置。监听手势的移动事件,获取移动中手指的坐标,并将移动的手指坐标减去起始位置的坐标得到手指移动的距离。然后实时地去改变幻灯片的transform的值来达到幻灯移动的效果。最后需要监听手势的结束事件,在该事件的处理函数中得到手指最后的位置,同样使用最后的位置减去手指的起始位置得到最终手指移动的距离,判断手指最终的移动距离是否大于滑动的临界值,本设计在此处设置临界值为100px,如果大于临界值则切换幻灯片,否则不进行切换。 在切换中特殊情况是幻灯处于第一张并向左滑动,以及最后一张并向右滑动,这两种操作都是无效的因为第一张幻灯左侧以及第二张幻灯右侧都是没有图片的。如何友好的告诉用户已近滑动到了第一张或者最后一张是提升用户体验的关键

opencv 手势识别

不羁岁月 提交于 2020-01-20 02:07:26
我使用OpenCV2.4.4的windows版本+Qt4.8.3+VS2010的编译器做了一个手势识别的小程序。 本程序主要使到了Opencv的特征训练库和最基本的图像处理的知识,包括肤色检测等等。 废话不多,先看一下基本的界面设计,以及主要功能: 相信对于Qt有一些了解的人都不会对这个界面的设计感到陌生吧!(该死,该死!)我们向下走: 紧接着是Qt导入OPenCV2.4.4的库文件:(先看一下Qt的工程文件吧) #------------------------------------------------- # # Project created by QtCreator 2013-05-25T11:16:11 # #------------------------------------------------- QT += core gui CONFIG += warn_off greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = HandGesture TEMPLATE = app INCLUDEPATH += E:/MyQtCreator/MyOpenCV/opencv/build/include SOURCES += main.cpp\ handgesturedialog.cpp \ SRC

在 Mac 上使用多点触控手势

人盡茶涼 提交于 2020-01-18 07:58:16
使用多点触控触控板或妙控鼠标,可以通过轻点、轻扫、捏合或开合一根或多根手指进行有用的操作。 触控板手势 有关这些手势的更多信息,请选取苹果菜单 () >“系统偏好设置”,然后点按“触控板”。您可以关闭某个手势,更改手势类型,以及了解哪些手势可在您的 Mac 上使用。 触控板手势要求使用 妙控板 或内建的多点触控触控板。如果您的触控板支持力度触控,您还可以 进行“用力点按”操作并获得触感反馈 。 轻点来点按 用单指轻点来进行点按。 辅助点按(右键点按) 用双指点按或轻点。 智能缩放 用双指轻点两下可放大网页或 PDF,或缩小回原来的大小。 滚动 双指向上或向下滑动可滚动。 1 放大或缩小 双指捏合或张开可放大或缩小。 旋转 双指互相以对方为中心移动,可旋转照片或其他项目。 在页面之间轻扫 双指向左或向右轻扫,可显示上一页或下一页。 打开“通知中心” 用双指从右边缘向左轻扫,可显示“通知中心”。 三指拖移 用三根手指拖移屏幕上的项目,然后点按或轻点以放下。 可在“辅助功能”偏好设置中开启此功能 2 。 查找和数据检测器 用三根手指轻点可查找字词,或者对日期、地址、电话号码和其他数据采取相关操作。 显示桌面 将拇指和另外三根手指同时展开,可显示桌面。 “启动台” 将拇指和另外三根手指合拢到一起,可显示“启动台”。 “调度中心” 用四根手指向上轻扫 3 ,可打开“ 调度中心 ”。 应用

移动端手势

痞子三分冷 提交于 2020-01-11 03:17:16
1. 相关事件在 mobile 与 pc 之间的差异 1.1 click事件的300ms延迟问题: ​2007年第一代iphone发布,浏览器自带了一个功能:双击缩放。 双击页面的时候,浏览器会智能的缩放当前页面到原始大小。 ​双击缩放的原理就是,当你click一次之后,会经过300ms之后检测是否再有一次click, 如果有的话,就会缩放页面。否则的话就是一个click事件。​ 所以,当你想执行click操作的时候,就感觉到了”卡顿”。 1.2 dblclick事件失效: 由于双击缩放的存在,pc端的dblclick事件也失效了。 1.3 ​ 新增了touch事件 随着触屏设备的普及,w3c为移动端web新增了touch事件。 2.移动端 touch 事件 2.1 touch事件包括4个事件 : touchstart:当在屏幕上按下手指时触发 touchmove:当在屏幕上移动手指时触发 touchend:当在屏幕上抬起手指时触发 touchcancel:当一些更高级别的事件发生的时候会取消当前的touch操作,即触发touchcancel。(电话接入、弹出信息、暂停游戏、存档等操作) 2.2 三个基本参数 TouchEvent :表示触摸状态发生改变时触发的event (通过检查触摸事件的 TouchEvent.type 属性来确定当前事件属于哪种类型。如:touchstart

HandAI开源项目,拉近人和摄影的距离:基于手势识别完成不同的拍摄行为

佐手、 提交于 2019-12-28 19:52:41
在12月初,我诞生了这个想法。现在的拍摄效果的转换都是人和机器通过物理接触完成,包括开始拍摄,各种拍摄效果等,几乎都是通过手指来完成。人类具有丰富的表达自我的能力,手势是表达自我的手段之一。无论是哪个地域的文化,一些手势都有其含义。在深度学习时代,我们完全可以用手势代替手指,告诉机器我们想做什么样的事情,想调换什么拍摄模式,因此HandAI诞生了。 固然手指在更多的场合还是很方便,但我做这个事情,不想去探讨手势控制的价值以及实用性,我只是单纯想做这个事情。 效果展示视频 友情提示:后半段视频声音略大,请调小音量。 项目地址 项目功能 HandAI能识别出8种手势。这八种手势是亚洲地区常用的手势,其意义都是积极或中性的,没有贬义手势。 Note: 如果gif图像没法显示(有些图像较大),可以去github上下载项目,在 pictures 文件夹中查看。 one:背景虚化,实现景深效果,前景人物不虚化 two:背景变化 three:背景调成黑白模式,前景人物依然有色彩。 four:人脸贴纸 five:画面横向复制扩展 good:视频背景转换模式,当右上角出现红点之后,使用yeah手势(two),即可把背景换成视频数据,而不是单纯的图像。 eight:华丽防挡弹幕模式。 ok:结束录制 项目设计思路 项目包括三个深度学习模型,分别是手部关键点检测以及识别(算统一的一个模型),