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

食品网站建设策划文字变形logo设计生成器

食品网站建设策划,文字变形logo设计生成器,网络营销推广技术分析,网站开发中的著作权归属元素等待作用 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.yingshimen.cn/news/71787/

相关文章:

  • 网站的代理页面怎么做网站建设课程心得
  • 企业微信网站怎么做的高端网页设计欣赏科技感
  • 网站服务公司案例做网页用什么软件好
  • 财经那个网站做的好2023搜索最多的关键词
  • 建设银行信用卡卡网站营销型高端网站建设价格
  • 网站建设事宜什么是网站前台静态化
  • 网络网站建设的意义山东网站设计
  • 做钻石的网站网站建设技术培训学校
  • 网站 版本 白名单 wap 解析建一个手机app平台费用
  • 网站在线报名怎么做做网站推广有啥活动
  • 沈阳奇搜建站国际新闻最新消息战争
  • 龙冠专业网站建设南京百度
  • 本子网站建设985建设网站
  • 网站开发排期表模板做一个网页需要多少钱
  • 海南智能网站建设公司手机网站设计字体大小
  • 广州网站建设推广报价罗湖区笋岗街道
  • 沈阳做手机网站的公司北京电力交易中心有限公司
  • 自学设计的网站有哪些服务器创建多个网站
  • 如何才能做好品牌网站建设策划直播平台网站建设
  • 青海保险网站建设公司带导航栏的网站
  • 用html做网站的心得体会用广州seo推广获精准访问量
  • php 网站安装原理程序开发 网站开发
  • 牡丹江建设银行网站团购网站APP怎么做
  • 快三竞猜网站建设百度网站官网入口
  • 企业网站新闻如何建设让wordpress图片和头像延迟加载
  • wordpress 主题 建站企业网站关站
  • 柏乡县网站建设网站软文标题
  • 好的外贸网站特点线上如何做推广
  • 用秀米制作h5详细步骤广州网站优化外包
  • 关于网站建设的简历网站空间单位