当前位置: 首页 > news >正文

3合1网站建设公司潮安区建设局网站

3合1网站建设公司,潮安区建设局网站,旅行网站开发意义,dark ui wordpress高级溜冰的滑动 滑动操作一般是两点之间的滑动#xff0c;这种滑动在这里称其为低级的溜冰滑动#xff1b;就是上一节给小伙伴们分享的。然而实际使用过程中用户可能要进行一些多点连续滑动操作。如九宫格滑动操作#xff0c;连续拖动图片移动等场景。那么这种高级绚丽的溜…高级溜冰的滑动 滑动操作一般是两点之间的滑动这种滑动在这里称其为低级的溜冰滑动就是上一节给小伙伴们分享的。然而实际使用过程中用户可能要进行一些多点连续滑动操作。如九宫格滑动操作连续拖动图片移动等场景。那么这种高级绚丽的溜冰滑动在Appium中该如何模拟这类操作呢下面给你慢慢道来。 TouchAction 首先看一下官方文档 地址https://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.touch_actions.html Touch Action包含一些列操作比如按压、长按、点击、移动、暂停。由着些不同操作可以组成一套动作。使用TochAction需要先导入对应的模块 from appium.webdriver.common.touch_action import TouchAction 按压 方法press() 开始按压一个元素或坐标点x,y。通过手指按压手机屏幕的某个位置。 press也可以接收屏幕的坐标x,y。 press(self, elNone, xNone, yNone)TouchAction(driver).press(x0,y308) 长按 方法longPress() 开始按压一个元素或坐标点x,y。 相比press()方法longPress()多了一个入参既然长按得有按的时间吧。duration以毫秒为单位。1000表示按一秒钟。其用法与press()方法相同。 long_press(self, elNone, xNone, yNone, duration1000) 点击 方法tap() 对一个元素或控件执行点击操作。用法参考press()。 tap(self, elementNone, xNone, yNone, count1) 移动 方法move_to() 将指针从上一个点移动到指定的元素或点。 move_to(self, elNone, xNone, yNone) 注意 移动到目位置有时是算绝对坐标点有时是基于前面一个坐标点的偏移量这个要结合具体App来实践。 暂停 方法Wait() wait(self, ms0) 暂停脚本的执行单位为毫秒。 释放 方法release() 结束的行动取消屏幕上的指针。 release(self) 执行 方法perform() 执行的操作发送到服务器的命令操作。 perform(self) TouchAction实战——九宫格滑动操作 九宫格是一种比较常见的图案加密方式目前很多App都支持设置图案锁Android原生系统也支持设九宫格图案锁屏。那么我们该如何使用Appium进行滑动操作呢 测试场景 安装启动随手记App 启动App后在密码设置选项中开启手机密码并滑动九宫格设置如下“Z”字形的图形密码。 测试环境 1.我的系统环境是Windows 10版本 64位系统 2.dk版本1.8.0_181 3.appium版本1.4.16 4.selenium3.141.0 安装selenium 输入指令pip install selenium 验证安装成功pip show selenium 5.测试设备Android 5.1.1 (不能低于5.0版本) 6.Python3.7.2 命令python -V  回车即可。 7.测试App随手记Android app V9.7.1.5 想法与思路 安装启动随手记APP代码实现点击“下一步”向左滑动首页引导页面点击“开始随手记”进入首页页面点击“设置”按钮向上滑动找到“高级”按钮点击进入点击“手势密码”开始设置手势密码高级滑动 代码实现 1安装启动随手记 2代码实现点击“下一步”向左滑动首页引导页面 3点击“开始随手记”进入首页页面 4点击“设置”按钮向上滑动找到“高级”按钮点击进入 5点击“手势密码”开始设置手势密码进行解锁高级滑动 这个地方move_to到了按下的这个坐标点是因为不这样的话实际结果忽略掉了第一个按下的点。release()释放perform()执行。 代码运行结果 运行过程appium和夜神模拟器 参考代码 1 # codingutf-82 # 1.先设置编码utf-8可支持中英文如上一般放在第一行3 4 # 2.注释包括记录创建时间创建人项目名称。5 6 Created on 2019-8-077 author: 潇潇说测试8 Project:学习和使用appium自动化测试-高级滑动9 10 # 3.导入模块 11 from appium import webdriver 12 from appium.webdriver.common.touch_action import TouchAction 13 from selenium.webdriver.support.ui import WebDriverWait 14 from selenium.common.exceptions import NoSuchElementException 15 from time import sleep 16 17 desired_caps{} 18 desired_caps[platformName]Android 19 desired_caps[deviceName]127.0.0.1:62001 20 desired_caps[platforVersion]5.1.1 21 22 desired_caps[app]rC:\Users\DELL\Downloads\mymoney.apk 23 desired_caps[appPackage]com.mymoney 24 desired_caps[appActivity]com.mymoney.biz.splash.SplashScreenActivity 25 26 driverwebdriver.Remote(http://127.0.0.1:4723/wd/hub,desired_caps) 27 driver.implicitly_wait(5) 28 29 30 def get_size(): 31 xdriver.get_window_size()[width] 32 ydriver.get_window_size()[height] 33 return x,y 34 35 def swipeLeft(): 36 lget_size() 37 x1int(l[0]*0.9) 38 y1int(l[1]*0.5) 39 x2int(l[0]*0.1) 40 driver.swipe(x1,y1,x2,y1,1000) 41 42 def swipeUp(): 43 l get_size() 44 x1 int(l[0] * 0.5) 45 y1 int(l[1] * 0.95) 46 y2 int(l[1] * 0.35) 47 driver.swipe(x1, y1, x1, y2, 1000) 48 49 #等待启动页面元素然后向左滑动两次,跳过引导页面 50 WebDriverWait(driver,6).until(lambda x:x.find_element_by_id(com.mymoney:id/next_btn)) 51 for i in range(2): 52 swipeLeft() 53 sleep(0.5) 54 #点击“开始随手记”按钮 55 driver.find_element_by_id(com.mymoney:id/begin_btn).click() 56 #检测是否有活动页面弹窗如果有就点击关闭 57 try: 58 closeBtndriver.find_element_by_id(com.mymoney:id/close_iv) 59 except NoSuchElementException: 60 pass 61 else: 62 closeBtn.click() 63 64 #点击设置 65 driver.find_element_by_id(com.mymoney:id/nav_btn_forth).click() 66 #等待界面菜单加载出来然后向上滑动 67 WebDriverWait(driver,6).until(lambda x:x.find_element_by_id(android:id/content)) 68 swipeUp() 69 #点击高级菜单 70 driver.find_element_by_android_uiautomator(new UiSelector().text(高级)).click() 71 #点击密码与手势密码菜单 72 driver.find_element_by_id(com.mymoney:id/password_protect).click() 73 #点击手势密码保护 74 driver.find_element_by_id(com.mymoney:id/ll_gesture_psd).click() 75 #连续滑动两次设置图案密码 76 for i in range(2): 77 TouchAction(driver).press(x212, y296).wait(100)\ 78 .move_to(x148, y0).wait(100)\ 79 .move_to(x148,y0).wait(100)\ 80 .move_to(x-148,y148).wait(100)\ 81 .move_to(x-148,y148).wait(100)\ 82 .move_to(x148,y0).wait(100)\ 83 .move_to(x148,y0).wait(100) \ 84 .release().wait(200).perform() 连续滑动设置手势密码坐标计算 首先使用工具获取到元素坐标位置可以看到起始位置是【138218】终点位置是【581661】 分析 该图形可以横竖划分六等分 那么第一个圆中心点的坐标 x138(581-138)/6 y218(661-218)/6 依次类推想要画一个z形状则需要计算第1、235789这几个圆的中心点坐标 然后用TouchAction 的press和moveto方法将几个步骤链接起来。代码如下 1 #引入包 2 from appium.webdriver.common.touch_action import TouchAction 3 4 def settingPassword(self):5 6 #[138,218][581,661]夜神上的元素坐标 7 8 xxx (581-138) / 69 one_x 138 xxx 10 one_y 218 xxx 11 two_x 138 xxx * 3 12 two_y 218 xxx #与第二个纵坐标相等 13 three_x138 xxx*5 14 three_y218 xxx #与第二个纵坐标相等 15 five_x138 xxx * 3 16 five_y218xxx*3 17 seven_x138 xxx 18 seven_y218xxx*5 19 eight_x138 xxx * 3 20 eight_y218xxx*5 21 nine_x138 xxx*5 22 nine_y218xxx*5 23 24 TouchAction(self.driver).press(xone_x, yone_y).wait(300).move_to(xtwo_x, ytwo_y).wait(300).move_to(xthree_x,ythree_y).wait(300).move_to(xfive_x,yfive_y).wait(300).move_to(xseven_x,yseven_y).wait(300).move_to(xeight_x,yeight_y).wait(300).move_to(xnine_x,ynine_y).release().perform() 小结 1.实现的时候总是报错 The coordinates provided to an interactions operation are invalid. 解决方案在release后边加上wait即可。这可是查了好多资料才找到的解决办法具体原因也有点蒙圈等找到原因了后期补上或者有知道的大佬可以分享一下心得体会 。 期间想不用for循环了直接写了两个一样的TouchAction还是报错然后实在是搞不定了第二天晚上决定既然可以画一个Z字形要不把设置密码的文章改成解锁密码文章 前者需要画两个Z字形后者需要画一个Z字形。而且刚好解锁需要一个就可以内心的小鬼在打架最终还是理性打败了取巧和任性硬着头皮解决遇到的各种问题才有了这篇文章的产生。这也侧面的反应学习和工作是不能偷奸取巧的。                                                                                    1 for i in range(2): 2 TouchAction(driver).press(x212, y296).wait(100)\ 3 .move_to(x148, y0).wait(100)\ 4 .move_to(x148,y0).wait(100)\ 5 .move_to(x-148,y148).wait(100)\ 6 .move_to(x-148,y148).wait(100)\ 7 .move_to(x148,y0).wait(100)\ 8 .move_to(x148,y0).wait(100) \ 9 .release().wait(100).perform() 2.这段代码里面有俩个坑呃关键点 1press方法中的坐标为绝对坐标move_to方法中的坐标都是相对坐标具体来说第一个move_to中的坐标相对于press方法中的坐标第二个move_to方法中的坐标相对于第一个move_to方法中的坐标。以此类推下去以前好像不是这个样子的。直接计算完就可以用了。宏哥期间犯的错误 a.就是直接算完就用结果报错然后查资料说是相对坐标; b.然后把后边move_to 的坐标都相对第一个绝对坐标了结果可想而知还是报错。 继续查资料才找到以上的解决办法了。 2wait是必须的这里ms表示为毫秒ms100就是等待100毫秒。不用的话太快会出错 3.分成六等份小伙伴们有点蒙圈给小伙伴们看一幅比较直观的图 4. 好了终于搞定了获得了新生。 【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】 一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜 生命不息奋斗不止。每一份努力都不会被辜负只要坚持不懈终究会有回报。珍惜时间追求梦想。不忘初心砥砺前行。你的未来由你掌握 生命短暂时间宝贵我们无法预知未来会发生什么但我们可以掌握当下。珍惜每一天努力奋斗让自己变得更加强大和优秀。坚定信念执着追求成功终将属于你 只有不断地挑战自己才能不断地超越自己。坚持追求梦想勇敢前行你就会发现奋斗的过程是如此美好而值得。相信自己你一定可以做到
http://www.w-s-a.com/news/47946/

相关文章:

  • 菏泽网站建设哪家好电子商务网络安全
  • 仿一个网站广州网站建设正规公司
  • 网站建设 目的seo网站关键词排名快速
  • 什么叫做响应式网站自媒体全平台发布
  • 企业网站 案例哪里需要人做钓鱼网站
  • 厚街东莞网站建设网站开发者调试模式
  • 网站推广营销联系方式wordpress adminlte
  • 哪些网站可以做文字链广告卖水果网站建设的策划书
  • 雕刻业务网站怎么做企业qq官网
  • 新华书店的做的数字阅读网站wordpress编辑器格式
  • jq做6个网站做什么好广西临桂建设局网站
  • 网站新闻图片尺寸南京网站设计公司
  • 重庆seo建站网站服务器 安全
  • 咸宁做网站的公司桂林网站建设兼职
  • 教做网站网站开发行业分析
  • 忻州网站建设培训友情链接交换形式有哪些
  • 佛山做外贸网站渠道外贸常用网站
  • 文章收录网站网站及新媒体建设办法
  • 招聘网站排行榜2021找建网站公司
  • 网站建设制作宝塔面板活动宣传推广的形式有哪些
  • 掉关键词网站敏捷软件开发流程
  • 微信小程序格泰网站建设新闻采编与制作专业简历
  • 电子商城建设网站海伦网站建设
  • 南充能够建设网站的公司有专门做设计的一个网站
  • 免费域名申请个人网站阿里巴巴运营的工作内容
  • 怎么建自己的手机网站保定电子商务网站建设
  • 系部网站建设中期检查表创建网站的公司
  • 西宁网站建设优化重庆企业的网站建设
  • 贝壳企业网站管理系统徽与章网站建设宗旨
  • 郑州网站模板动漫设计与制作设计课程