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

教育建设网站怎么搜索整个网站内容

教育建设网站,怎么搜索整个网站内容,哪家网站设计公司好,建筑施工特种证书查询入口官网思考 在自动化过程中#xff0c;元素出现受网络环境#xff0c;设备性能等多种因素影响。因此元素加载的时间可能不一致#xff0c;从而会导致元素无法定位超时报错#xff0c;但是实际上元素是正常加载了的#xff0c;只是出现时间晚一点而已。那么如何解决这个问题呢元素出现受网络环境设备性能等多种因素影响。因此元素加载的时间可能不一致从而会导致元素无法定位超时报错但是实际上元素是正常加载了的只是出现时间晚一点而已。那么如何解决这个问题呢 实际测试过程中比如点击一个控件需要启动一个新activiy界面或需要加载弹框或请求网络加载数据成功后刷新界面此时需要等待一段时间新界面出现了才能继续执行UI操作否则还在加载中程序已开始执行新界面操作的代码脚本就会报错了。 元素等待作用 1.设置元素等待可以更加灵活的制定等待定位元素的时间从而增强脚本的健壮性提高执行效率。 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.强制等待方法应用实例 1 # codingutf-82 # 1.先设置编码utf-8可支持中英文如上一般放在第一行3 4 # 2.注释包括记录创建时间创建人项目名称。5 6 Created on 2019-7-267 author: 潇潇说测试8 Project:学习和使用appium自动化测试-元素等待9 10 # 3.导入模块 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.显示等待方法应用实例 1 # codingutf-82 # 1.先设置编码utf-8可支持中英文如上一般放在第一行3 4 # 2.注释包括记录创建时间创建人项目名称。5 6 Created on 2019-7-267 author: 潇潇说测试8 Project:学习和使用appium自动化测试-元素等待9 10 # 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 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.隐式等待方法应用实例 1 # codingutf-82 # 1.先设置编码utf-8可支持中英文如上一般放在第一行3 4 # 2.注释包括记录创建时间创建人项目名称。5 6 Created on 2019-7-267 author: 潇潇说测试8 Project:学习和使用appium自动化测试-元素等待9 10 # 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 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 获取current_activity 1打开app后先sleep10秒等app完全启动完成进入主页面然后获取当前界面的activity 1 # codingutf-82 # 1.先设置编码utf-8可支持中英文如上一般放在第一行3 4 # 2.注释包括记录创建时间创建人项目名称。5 6 Created on 2019-7-267 author: 潇潇说测试8 Project:学习和使用appium自动化测试-元素等待9 10 # 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) 23 # 获取当前界面activity 24 ac driver.current_activity 25 print(ac) 2运行结果 等待activity 1用sleep太浪费时间了并且不知道什么时候能启动完成所以尽量不用sleep不推荐使用。因为这个确实是太low了。 2上一步已经获取当主页面的activity了那就可以用wait_activity等它出现了再做下一步的点击操作 3参考代码 1 # codingutf-82 # 1.先设置编码utf-8可支持中英文如上一般放在第一行3 4 # 2.注释包括记录创建时间创建人项目名称。5 6 Created on 2019-7-267 author: 潇潇说测试8 Project:学习和使用appium自动化测试-元素等待9 10 # 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) 23 # 获取当前界面activity 24 ac driver.current_activity 25 print(ac) 5.  好了关于元素等待目前就说这么多 【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】 一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 九、总结尾部小惊喜 生命不息奋斗不止。每一份努力都不会被辜负只要坚持不懈终究会有回报。珍惜时间追求梦想。不忘初心砥砺前行。你的未来由你掌握 生命短暂时间宝贵我们无法预知未来会发生什么但我们可以掌握当下。珍惜每一天努力奋斗让自己变得更加强大和优秀。坚定信念执着追求成功终将属于你 只有不断地挑战自己才能不断地超越自己。坚持追求梦想勇敢前行你就会发现奋斗的过程是如此美好而值得。相信自己你一定可以做到
http://www.w-s-a.com/news/306762/

相关文章:

  • 网站设配色个人主页介绍文案
  • 网站seo相关设置优化网站建设的好处
  • 上海市建设工程安全生产协会网站郴州网站设计公司
  • 网站大型网页游戏自己搭建服务器做视频网站
  • 建立网站企业wordpress用户名密码破解
  • 网站管理助手建站教程国外网站做acm题目比较好
  • 网站开发框架排行专业网页制作服务商
  • 企业网站建设入账政务网站建设信息
  • 网络平台建设是什么江门排名优化怎么做
  • 响应式旅游网站模板下载网址做
  • 个人做网站名称可以随意更改吗惠州网站推广排名
  • 自己建设一个网站步骤网站认证怎么认证
  • 深圳建站公司开发费用沧州手机建站哪家好
  • 兰州网站设计公司排名百度怎么发布短视频
  • 大连模板开发建站泰州网站建设策划方案
  • 厦门好的网站设计局域网内建网站
  • 关键词那种网站正版网页游戏平台排行榜
  • 网站自助建设平台创建网址快捷方式
  • 坑梓网站建设包括哪些成都网站建设优创
  • 重庆网站seo公司哪家好超级优化大师
  • 成都网站建设推广详情邵阳市住房和城乡建设局网站
  • 淄博网站推广猎头公司有哪些
  • 局域网内建立网站90设计网怎么样
  • 域名备案和网站备案有什么不同工程项目建设网站
  • 做网站难吗?wordpress评论qq
  • 权威网站优化价格电子商务静态网站建设实验报告
  • 公司如何办网站北京网站建设公司内江
  • 六安建设网站企业营业执照查询系统入口
  • a5网站建设如果建设淘宝导购网站
  • html5响应式网站开发教程在国内做跨境电商怎么上外国网站