测试场景中,若大量使用了Selenium的元素查找[find、finds],整个测试场景的耗时变得比较长,可能会达到手动测试50%的耗时,如何优化?

  1. 尽量使用find
  2. 各个用例解耦,使用多开进程的方式来执行
  3. 用例内部尽量不使用time.sleep硬性等待

以下是find和finds的性能耗时对比:

# coding = utf-8
from selenium import webdriver
import time_url = 'https://www.baidu.com/'
_xpath = '//input[@value='百度一下']'def monitor_time(func):def wrapper(*args, **kwargs):star_time = time.time()f = func(*args, **kwargs)end_time = time.time()print('%s() runtime:%s ms' % (fn.__name__, 1000 * (end_time - star_time)))return freturn wrapper@monitor_time
def test_find():chrome = webdriver.Chrome()chrome.get(_url)e = chrome.find_element_by_xpath(_xpath)@monitor_time
def test_finds():chrome = webdriver.Chrome()chrome.get(_url)e = chrome.find_elements_by_xpath(_xpath)[0]run_find() * 100次,取100次耗时的平均数
run_finds() * 100次,取100次耗时的平均数
测试结果:

finds比find 大约多耗时 9%~11%, 在确定性比较高的情况下,尽量用find

Selenium finds和find的耗时性能比对相关推荐

  1. 保存模型后无法训练_模型构建到部署实践

    导读 在工业界一般会采用了tensorflow-serving进行模型的部署,而在模型构建时会因人而异会使用不同的深度学习框架,这就需要在使用指定深度学习框架训练出模型后,统一将模型转为pb格式,便于 ...

  2. 爬虫 页面元素变化_爬虫 基本知识 萌新

    爬虫 定义 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟 ...

  3. python的celery的面试_面试必问的celery,你了解多少?

    celery是什么,有什么用? 对于celery,各种文档解释一堆,可以自己看下,根据日常互动,公众号用户小白居多,官方用到的很多名词可能你理解起来不是那么容易,我这里就不照本宣科了,就以我这边的理解 ...

  4. python+selenium自动化软件测试

    1.1 环境搭建 1.1.1 selenium简介 Selenium 是用于测试 Web 应用程序用户界面 (UI) 的常用框架.它是一款用于运行端到端功能测试的超强工具.您可以使用多个编程语言编写测 ...

  5. linux selenium_爬虫界又出神器|一款比selenium更高效的利器

    提起selenium想必大家都不陌生,作为一款知名的Web自动化测试框架,selenium支持多款主流浏览器,提供了功能丰富的API接口,经常被我们用作爬虫工具来使用.但是selenium的缺点也很明 ...

  6. 你需要知道的有关Selenium异常处理的都在这儿

    什么是异常? 顾名思义,作为程序员的一种常用术语,"异常"与任何特定的编程语言无关.它属于程序因为突然中止,而未能交付出预期输出的事件.通常,引发异常出现的潜在因素往往来自如下方面 ...

  7. Python+selenium自动化:页面加载慢、超时加载情况下内容已经加载完毕的快速执行脚本解决方案,页面加载时间过长优化方案

    driver.set_page_load_timeout(3) 页面加载时间设置 3 秒,执行到某一步涉及页面加载如果加载时间超过 3 秒就会停止加载并抛出异常,其实这个时候页面内的元素已经加载出来了 ...

  8. 开发函数计算的正确姿势——运行 Selenium Java

    前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传.函数计算 ...

  9. javascript createelement_贝程学院:Selenium与 JavaScript

    一.为什么学习JavaScript 进行web自动化测试也好还是移动端自动化测试也好,必须要对系统实现用到的技术有一定的了解,而JavaScript作为世界上最流行的脚本语言,在电脑.手机.平板上浏览 ...

最新文章

  1. 华数软件测试岗位,重磅:字节跳动与华数共同研发的电视原创视频app已正式测试上线...
  2. 经典PID控制算法用C语言实现!
  3. 风洞试验计算机控制模块,计算机控制风洞
  4. win2003 IIS6配置PHP 5.3.3(fastCGI方式+eAccelerator)+ASP.NET 4.0(MVC3)
  5. ubuntu创建php文件,ubuntu系统创建桌面快捷方式的方法
  6. 【JVM】 讲的比较好的JVM博客连接
  7. 2003引脚功能电压_《线性稳压器系列》1:从线性稳压器的原理,功能及类型说起......
  8. 种子编辑 android6,360种子编辑器安卓APK下载-360种子在线编辑器手机版下载v1.0 Android版-腾牛安卓网...
  9. (郭霖)Android图片加载框架最全解析(一),Glide的基本用法
  10. 12345政府热线报告
  11. 虚拟机怎么架设dns服务器,虚拟机centos7 DNS服务器搭建
  12. 微信小程序利用百度api达成植物识别
  13. office365:PowerPoint新功能设计器,让排版更轻松
  14. python实现kmeans算法对图片的聚类分割
  15. 荣联科技转型的一二三四五
  16. fourier feature networks
  17. 英伟达DeepStream学习笔记45——deepstream 绘制感兴趣ROI区域 绘制矩形框
  18. CX51 用户手册----MDU_R515 伪指令
  19. Java - 为什么不能根据返回类型来区分重载?
  20. 制作gltf动态夜景模型

热门文章

  1. 由浅入深学java iso_由浅入深学Java:基础、进阶与必做260题 PDF扫描版[47MB]
  2. 腾讯云搭建 CentOS 可视化界面startx无效解决方法
  3. 求最小公倍数(扩展版)
  4. 最优秀的六种造字方法
  5. C语言 switch语句来调用函数
  6. 苹果手机怎么注册新Apple id帐户注册
  7. 2020Android不死我不倒,作为一个程序员,你觉得最大的悲哀是什么
  8. Lucky Kat LAND — NFT 系列发售
  9. java中super的三种用法
  10. 中国大学moocpython答案查询_中国大学MOOC(慕课)_Python编程基础_mooc题库答案查询...