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

钉钉企业注册流程windows优化大师功能

钉钉企业注册流程,windows优化大师功能,html5导航网站源码下载,上海app开发公司排名元素等待作用 1.设置元素等待可以更加灵活的制定等待定位元素的时间#xff0c;从而增强脚本的健壮性#xff0c;提高执行效率。 2.元素等待是为了解决如下场景的问题#xff1a;脚本执行时#xff0c;脚本的执行速度和页面元素的加载速度未必一致#xff0c;也就是说从而增强脚本的健壮性提高执行效率。 2.元素等待是为了解决如下场景的问题脚本执行时脚本的执行速度和页面元素的加载速度未必一致也就是说可能出现脚本已经运行到某个元素但该元素尚未加载到页面此时脚本会因无法定位到该元素而导致执行失败。元素等待本质是为了解决时序上不匹配的问题。 元素等待类型 类型特点举例强制等待 设置固定的等待时间 from time import sleep #强制等待5秒 sleep(5) 隐式等待 针对全部元素设置的等待时间 driver.implicitly_wait(5) 显示等待 针对某个元素来设置的等待时间 from selenium.webdriver.support.ui import WebDriverWait WebDriverWait(driver, timeout, poll_frequency0.5, ignored_exceptionsNone) 强制等待 设置固定的等待时间使用sleep()方法即可实现 sleep() 设置固定休眠时间。 python 的 time 包提供了休眠方法 sleep() 导入 time包后就可以使用 sleep()进行脚本的执行过程进行休眠。 1 from time import sleep 2 3 #强制等待5秒 4 5 sleep(5) 隐式等待 隐式等待是针对全部元素设置的等待时间 1 #implicitly_wait()是 webdirver 提供的一个超时等待。隐的等待一个元素被发现或一个命令完成。如果超出了设置时间的则抛出异常。2 #implicitly_wait():隐式等待3 #当使用了隐士等待执行测试的时候如果 WebDriver没有在 DOM中找到元素将继续等待超出设定时间后则抛出找不到元素的异常4 #换句话说当查找元素或元素并没有立即出现的时候隐式等待将等待一段时间再查找 DOM默认的时间是05 #一旦设置了隐式等待则它存在整个 WebDriver 对象实例的声明周期中隐式的等到会让一个正常响应的应用的测试变慢6 #它将会在寻找每个元素的时候都进行等待这样会增加整个测试执行的时间。7 8 #implicitly_wait()方法比 sleep() 更加智能后者只能选择一个固定的时间的等待前者可以在一个时间范围内智能的等待。9 10 driver.implicitly_wait(20) 显式等待 显式等待是针对某个元素来设置的等待时间。 WebDriverWait()同样也是 webdirver 提供的方法。在设置时间内默认每隔一段时间检测一次当前。页面元素是否存在如果超过设置时间检测不到则抛出异常。 方法WebDriverWait格式参数如下 1 详细格式如下2 WebDriverWait(driver, timeout, poll_frequency0.5, ignored_exceptionsNone)3 driver - WebDriver 的驱动程序(Ie, Firefox, Chrome 或远程)4 timeout - 最长超时时间默认以秒为单位5 poll_frequency - 休眠时间的间隔步长时间默认为 0.5 秒6 ignored_exceptions - 超时后的异常信息默认情况下抛 NoSuchElementException 异常。7 WebDriverWai()一般由 until()或 until_not()方法配合使用下面是 until()和 until_not()方法的说明。8 until(method, message’’)9 调用该方法提供的驱动程序作为一个参数直到返回值不为 False。 10 until_not(method, message’’) 11 调用该方法提供的驱动程序作为一个参数直到返回值为 False。 12 lambda 13 lambda 提供了一个运行时动态创建函数的方法。 14 15 from selenium.webdriver.support.ui import WebDriverWait 16 17 WebDriverWait(driver,10).until(lambda x:x.find_element_by_id(elementID)) 其中三种等待方法的作用和区别如下 强制等待也就是常说的死等待使用time模块提供的sleep方法脚本在等待sleepx x秒后才执行此时脚本也许出现了无效等待即元素已经出现可以继续操作但因指定的时间未到脚本无法执行因而在实际Web UI开发中应杜绝sleep等待 显式等待WebDriver提供的针对元素级别的、灵活、智能的等待方法通过配合until()、until_not()、ExpectedCondition等条件的使用默认每500ms检查一次条件状态可以及时将脚本从等待中唤醒避免无效等待在实际应用中推荐使用该方法。 该等待的调用方法如下 WebDriverWait(driver, 超时时长, 调用频率, 忽略异常).until(可执行方法, 超时时返回的信息) 隐式等待WebDriver提供的针对driver级别的适用整个生命周期的等待方法该等待是全局设置因而只需在实例化driver后设置一次即可。从等待作用上看是可以满足需要的但是考虑到实际应用场景driver要等待的元素和脚本要操作的元素未必相同也就是说脚本要操作的元素已经出现但因为设置了全局等待driver也会继续等待页面上其他无关元素直至整个页面加载完毕。因而与显式等待相比可能出现无效等待的情况。 等待方法实战举例 1.强制等待方法应用实例 11 from appium import webdriver 12 import time 13 desired_caps {} 14 desired_caps[platformName] Android #android的apk还是IOS的ipa 15 desired_caps[platformVersion] 8.0 #android系统的版本号 16 desired_caps[deviceName] 127.0.0.1:62001 #手机设备名称通过adb devices 查看 17 desired_caps[appPackage] com.taobao.taobao #apk的包名 18 desired_caps[appActivity] com.taobao.tao.welcome.Welcome #apk的launcherActivity 19 desired_caps[unicodeKeyboard] True #使用unicodeKeyboard的编码方式来发送字符串 20 desired_caps[resetKeyboard] True #将键盘给隐藏起来 21 driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_caps) #启动服务器地址后面跟的是手机信息 22 # 休眠五秒等待页面加载完成 23 time.sleep(5) #强制等待5s不管等待的元素是否出现都要等5s 24 driver.find_element_by_id(com.taobao.taobao:id/home_searchedit).click() 25 time.sleep(3) #演示效果 26 driver.find_element_by_id(com.taobao.taobao:id/searchEdit).click() 27 driver.find_element_by_id(com.taobao.taobao:id/searchEdit).send_keys(u程序员的世界你不懂) 28 driver.quit() 2.显示等待方法应用实例 11 from appium import webdriver 12 from selenium.webdriver.support.ui import WebDriverWait 13 import time 14 desired_caps {} 15 desired_caps[platformName] Android #android的apk还是IOS的ipa 16 desired_caps[platformVersion] 8.0 #android系统的版本号 17 desired_caps[deviceName] 127.0.0.1:62001 #手机设备名称通过adb devices 查看 18 desired_caps[appPackage] com.taobao.taobao #apk的包名 19 desired_caps[appActivity] com.taobao.tao.welcome.Welcome #apk的launcherActivity 20 desired_caps[unicodeKeyboard] True #使用unicodeKeyboard的编码方式来发送字符串 21 desired_caps[resetKeyboard] True #将键盘给隐藏起来 22 driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_caps) #启动服务器地址后面跟的是手机信息 23 try: 24 # 显示等待等待特定元素出现 25 WebDriverWait(driver, 3).until(lambda x: x.find_element_by_id(com.taobao.taobao:id/home_searchedit)) 26 driver.find_element_by_id(com.taobao.taobao:id/home_searchedit).click() 27 time.sleep(3) # 演示效果 28 driver.find_element_by_id(com.taobao.taobao:id/searchEdit).click() 29 driver.find_element_by_id(com.taobao.taobao:id/searchEdit).send_keys(u程序员的世界你不懂) 30 finally: 31 driver.quit() 3.隐式等待方法应用实例 11 from appium import webdriver 12 from selenium.webdriver.support.ui import WebDriverWait 13 import time 14 desired_caps {} 15 desired_caps[platformName] Android #android的apk还是IOS的ipa 16 desired_caps[platformVersion] 8.0 #android系统的版本号 17 desired_caps[deviceName] 127.0.0.1:62001 #手机设备名称通过adb devices 查看 18 desired_caps[appPackage] com.taobao.taobao #apk的包名 19 desired_caps[appActivity] com.taobao.tao.welcome.Welcome #apk的launcherActivity 20 desired_caps[unicodeKeyboard] True #使用unicodeKeyboard的编码方式来发送字符串 21 desired_caps[resetKeyboard] True #将键盘给隐藏起来 22 driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_caps) #启动服务器地址后面跟的是手机信息 23 24 # 隐式等待(等待所有元素) 25 driver.implicitly_wait(3) #隐式等待,最长3s 26 driver.find_element_by_id(com.taobao.taobao:id/home_searchedit).click() 27 time.sleep(3) #演示效果 28 driver.find_element_by_id(com.taobao.taobao:id/searchEdit).click() 29 driver.find_element_by_id(com.taobao.taobao:id/searchEdit).send_keys(u程序的世界你不懂) 30 driver.quit() 梳理 1.本节主要介绍appium自动化中三种元素等待方法并讲解了各自的优缺点实际开发中推荐使用显示等待最后为了便于理解和应用针对每种等待方法编写了对应的脚本。 2.强制等待的方法在debug时候很有用不过建议慎用这种方法因为太死板严重影响程序执行速度 3.以上三种等待方法在具体的场景中需要根据情况选择合适的方法灵活运用。。。 4.做过自动化的小伙伴们或者童鞋们在启动app的时候幸运的小伙伴和同学们都会中这个大奖如果直接做下一步点击操作经常会报错于是我们便会自然而然的想到上边介绍的三种方法会在启动完成的时候加sleep等方法。那么问题来了你这个sleep时间到底设置多少合适呢你不知道我也不知道这个问题的答案如果设置长了就浪费时间设置短了就会找不到元素报错了。过长过短都是个让你头疼的事那么有没有别的方法可以克服这个问题了。当然有但是这个只是针对安卓手机的要记住了iPhone不适合的。这个时候我们可以用wait_activity的语法等到你想点击的页面activity出现了再点击可以有效的节省时间。 wait_activity 1查看源码 1 def wait_activity(self, activity, timeout, interval1):2 Wait for an activity: block until target activity presents3 or time out.4 5 This is an Android-only method.6 7 :Agrs:8 - activity - target activity9 - timeout - max wait time, in seconds 10 - interval - sleep interval between retries, in seconds 11 12 try: 13 WebDriverWait(self, timeout, interval).until( 14 lambda d: d.current_activity activity) 15 return True 16 except TimeoutException: 17 return False 2解释说明 1 wait_activity(self, activity, timeout, interval1):2 3 等待指定的activity出现直到超时interval为扫描间隔1秒4 5 即每隔几秒获取一次当前的activity6 7 android特有的8 9 返回的True 或 False 10 11 :Agrs: 12 13 - activity - 需等待的目标 activity 14 15 - timeout - 最大超时时间单位是s 16 17 - interval - 循环查询时间 18 19 用法:driver.wait_activity(‘.activity.xxx’,5,2) 获取current_activity 1打开app后先sleep10秒等app完全启动完成进入主页面然后获取当前界面的activity 11 from appium import webdriver 12 from time import sleep 13 desired_caps { 14 platformName: Android, 15 deviceName: 127.0.0.1:62001, 16 platformVersion: 4.4.2, 17 appPackage: com.baidu.yuedu, 18 appActivity: com.baidu.yuedu.splash.SplashActivity 19 } 20 driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_caps) 21 22 sleep(10) 23 # 获取当前界面activity 24 ac driver.current_activity 25 print(ac) 2运行结果 等待activity 1用sleep太浪费时间了并且不知道什么时候能启动完成所以尽量不用sleep也不推荐使用。因为这个确实是太low了。 2上一步已经获取当主页面的activity了那就可以用wait_activity等它出现了再做下一步的点击操作 3参考代码 11 from appium import webdriver 12 from time import sleep 13 desired_caps { 14 platformName: Android, 15 deviceName: 127.0.0.1:62001, 16 platformVersion: 4.4.2, 17 appPackage: com.baidu.yuedu, 18 appActivity: com.baidu.yuedu.splash.SplashActivity 19 } 20 driver webdriver.Remote(http://127.0.0.1:4723/wd/hub, desired_caps) 21 22 # sleep(10) # 不用sleep 23 24 # 获取当前界面activity 25 ac driver.current_activity 26 print(ac) 27 28 # 等主页面activity出现,30秒内 29 driver.wait_activity(.base.ui.MainActivity, 30) 30 31 # 点知道了 32 driver.find_element_by_id(com.baidu.yuedu:id/positive).click()
http://www.hkea.cn/news/14517540/

相关文章:

  • 关于网站平台建设调研的函php与H5做网站
  • 怎样先做网站后买域名做公司网站宣传公司
  • 陕西省城乡住房建设部网站wordpress问答中心
  • 怎么做电商平台网站页面布局方式
  • 贵阳网站建开发河北省和城乡住房建设厅网站首页
  • 中国建设银官方网站洛阳建设银行网站
  • 临沂做拼多多网站2018年主流网站开发语言
  • 政协网站 两学一做专题研讨百度seo排名推广
  • 电子商务网站预算模板html5做网页
  • 会展官方网站建设wordpress ie8 兼容
  • 怎么做企业功能网站佛山网站建设哪家效果好
  • 蓝色科技网站建设网页商城设计
  • 如何做配音网站我需要做网站
  • 网络营销的主要特点有哪些单页面seo搜索引擎优化
  • ui设计案例网站百度认证考试
  • 建网站需要买服务器吗品牌建设公司网站
  • 做网站多久才会有收益做宠物网站赚钱吗
  • 网站的需求分析都有哪些内容凡科网 小程序
  • 网站还没建设好可以备案吗杭州网络公司做网站报价
  • linux做网站教程给企业做网站多少钱
  • 网站设计网站建设毕业文稿搜索推广网站哪家做的最好
  • 二级网站都在一台服务器怎么做域名网上书城网站建设目的
  • 不花钱做网站长沙微网站开发
  • 中国建设网站的证件怎么查询怎么把做的网站发布
  • 网站开发与维护专员岗位职责360浏览器免费网站
  • 什么是html5网站百度网站建设在哪
  • 黑山网站制作公司大学生求职简历模板
  • 在印度做外贸需要什么网站广东深圳属于什么地区
  • 网站移动端怎么做的上海著名的网站制作公司
  • 青岛模板自助建站做网站和网页的目的和作用是什么