【selenium学习笔记】数据驱动时使用类方法遇到的问题

自动化测试等待机制
本文探讨了自动化测试中因脚本运行速度过快导致的测试结果不准确问题,并提出了解决方案,包括使用休眠和显式等待来确保浏览器加载完成后再进行后续操作。
CategoryOrProduct,NumberOfProducts
phones,0
music,5
cat,1

上面是我脚本使用到的数据,因为我使用了类方法,所以3个测试用例只打开一次浏览器,然而因为没对脚本进行等待机制,导致结果会出现5!= 1 

@data(*get_data('testdata.csv'))
@unpack
def test_search(self, search_value, expected_count):
    self.search_field = self.driver.find_element_by_name('q')
    self.search_field.clear()

    # enter search keyword and submit.
    self.search_field.send_keys(search_value)
    self.search_field.submit()   
    products = self.driver.find_elements_by_xpath("//h2[@class='product-name']/a")
   expected_count = int(expected_count)
   if expected_count > 0:
       # check count of products shown in results
       self.assertEqual(expected_count, len(products))
   else:
       msg = self.driver.find_element_by_class_name('note-msg')
       self.assertEqual("Your search returns no results.", msg.text)

这是因为脚本运行过快,在搜索框刚输入search_value后提交,浏览器还没加载出来新的数据,脚本就已经自动接下来的代码,因此获取到的数据上一次测试用例的结果,最终导致后面两个测试用例报错。

.我的解决方法是在提交搜索字段后,使脚本休眠3秒,time.sleep(3),当然也可以用显式等待去控制,复杂的脚本推荐用显式等待,自己写的简单脚本感觉就没必要。

有什么不对的地方欢迎大佬们指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值