吐血整理,Selenium自动化测试优化执行速度小技巧(汇总)

本文分享了提高Selenium自动化测试速度的技巧,包括:使用page_source代替text属性断言,选择更具体的元素以加快速度,缓存不变元素的文本,用JS快速输入大文本,以及使用动态等待代替固定睡眠。通过这些方法,可以优化测试脚本的执行效率,减少不必要的等待时间。
摘要由CSDN通过智能技术生成


前言

让自动化测试脚本正常工作只是自动化测试的第一步,由于自动化脚本会经常执行并更新,因此测试脚本需要,可以快速执行、容易维护、容易阅读等。

在page_source中断言text比直接使用text属性断言要快

我们经常会需要断言页面中的某个部分包含一些具体的文本,下面的语句的输出结果是相同的

driver.page_source 
driver.find_element(:tag_name => ‘body') 

不过对于第二条语句来说,selenium需要去分析页面的结构,最后再找到对应的元素并输入结果,这显然是需要花费时间的。如果页面比较小的化,那么二者的差距可能不大,不过对于大的页面来说,第一条语句速度明显会更快一些。

使用page text的情况

expect(driver.find_element(:tag_name => "body").text).to include("platform- and language-neutral wire protocol")

使用 page source的情况

expect(driver.page_source).to include("platform- and language-neutral wire protocol")

来看一下差距

Method 1: Search whole document text took 0.823076 seconds 
Method 2: Search whole document HTML took 0.039573 seconds

当然两者的使用场景是不太相同的,不过我们这里只关注性能,显然page source要更快速一些。

元素越具体,获取text的速度越快

根据经验,我们可以通过缩小更具体的 Web 控件的范围来节省执行时间。下面的两个断言语句在很大程度上实现了相同的功能,但在执行时间上有很大的不同。

expect(driver.find_element(:tag_name, “body”)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值