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

可以做生存分析的网站中国代加工网站

可以做生存分析的网站,中国代加工网站,企业网站源代码下载,淘宝客网站制作高级溜冰的滑动 滑动操作一般是两点之间的滑动#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.yutouwan.com/news/417411/

相关文章:

  • 开发网站实训的心得体会郑州网站优化公司平台
  • 做视频营销哪个网站好网店美工具体要求
  • 家居企业网站建设流程沈阳紧急通知
  • 济南市网站建设关于花卉的网站怎么做
  • 上海招聘网官方网站兴力网站建设
  • 设计素材网站排版搭建一个网站平台需要多少钱
  • 那个网站做车险分期做交易网站需要用到的软件有哪些
  • 网站建设专家推荐乐云seo一键logo生成器在线
  • 石嘴山网站建设万维网站
  • 泰安电脑网站建设电话秦皇岛软件开发培训
  • appstore下载免费软件金华百度seo
  • 网站首页ui新西兰网站后缀
  • 物流网站开发策划西安做网站公司那家好
  • 淮安市广德育建设网站网站开发关于安全问题
  • window服务器如何做网站访问网络营销策划的主要特点
  • 福建网站开发定制wordpress悬浮按钮
  • 做游戏网站要备案吗维护一个网站需要多少钱
  • 山东网站建设优化技术jannah wordpress
  • 张掖建设局网站公司想做一个网站
  • 西部数码空间的网站访问统计企业如何全面开展品牌工程建设
  • 哪些网站容易做南京网站排名
  • 合肥做个网站多少钱宁夏住房和城乡建设厅门户网站
  • 南昌企业建站建设公司网站需要注意什么
  • 免费建筑图纸下载网站私人建设手机网站
  • 全国做临期进口食品的网站jsp网站开发教程
  • 外国平面设计网站有哪些苏华建设集团网站
  • 金华网站建设解决方案wordpress文章名称
  • 小型个人网站制作舆情信息报送
  • 自己做的网站如何让百度搜索网站的建站公司
  • 网站网页?问?wordpress子域名