Selenium自动化测试(断言 / fame框架处理)------实例

136 篇文章 28 订阅
9 篇文章 1 订阅
本文详细介绍了如何在Selenium自动化测试中使用断言方法验证预期结果,并探讨了fame框架的应用,特别关注下拉框选择和处理框架切换技巧。了解如何解决定位元素问题,以及如何在测试中有效使用框架和选择元素的方法。
摘要由CSDN通过智能技术生成

Selenium自动化测试(断言 / fame框架处理)

一、断言

1、验证应用程序的状态是否同所期望的一致
2、常见的断言包括:验证页面内容,如标题是否为xxx或当前位置是否正确,或是验证该复选框是否被勾选

unittest中常用的assert(断言)语句

assertEqual(a, b) 	       # a == b
assertNotEqual(a, b)   	   # a != b
assertTrue(x)   	       # bool(x) is True 
assertFalse(x) 		       # bool(x) is False 
assertIs(a, b) 		       # a is b 
assertIsNot(a, b)	       # a is not b 
assertIsNone(x)		       # x is None 
assertIsNotNone(x) 	       # x is not None 
assertIn(a, b) 		       # a in b 
assertNotIn(a, b) 		   # a not in b 
assertIsInstance(a, b)     # isinstance(a, b) 
assertNotIsInstance(a, b)  # not isinstance(a, b) 
assertGreater(a, b)		   # a > b 
assertGreaterEqual(a, b)   # a >= b 
assertLess(a, b) 		   # a < b 
assertLessEqual(a, b) 	   # a <= b

实例代码块:

aq = self.locator(self.ass).text    # 用于断言登录成功的文本内容
try:
    self.assertIn("欢迎您", aq)
    self.test_log.info("普通信息  [test_01_login]  测试成功-预期结果  [%s]" % state)    #在日志里显示
    self.close()
    # self.logger.info("test_01_login:测试成功-预期结果 [%s]" % state)  # 日志文件(断言失败会写到日志里)
except AssertionError:
    self.picture()
    self.test_log.error("错误信息  [test_01_login]  测试失败")
    # self.logger.info("test_01_login:测试失败")
    raise AssertionError    # 抛出异常

异常类型:
AssertionError:assert语句失败

AttributeError:试图访问一个对象没有的属性

IOError:输入输出异常,基本是无法打开文件

ImportError:无法引入模块或者包,基本是路径问题

IndentationError:语法错误,代码没有正确的对齐

IndexError:下标索引超出序列边界

KeyError:试图访问字典里不存在的键

KeyboadrInterrupt:Ctrl+c被按下

NameError:使用一个还未赋值对象的变量

SyntaxError:python代码逻辑语法错误,不能执行

TypeError:传入的对象类型与要求不符

UnboundLocalError:试图访问一个还未设置的全局变量,基本上是由于另有一个同名的全局变量,导致你以为在访问

ValueError:传入一个不被期望的值,即使类型正确

二、fame框架

有时候我们老定位不到元素,这里不妨看一下前端开发的项目是否有fame框架页,有的话大概率是这个问题,需要进入fame框架页才可以操作元素,适当的添加休眠的时间

# 进入框架
driver.switch_to.frame("menu-frame")
driver.find_element(By.CSS_SELECTOR, "a[href='goods.php?act=list']").click()
# 退出框架
driver.switch_to.default_content()   # 退出框架
# 再进入框架(操作元素)
driver.switch_to.frame("menu-frame")
driver.find_element(By.LINK_TEXT, '添加新商品').click()
三、下拉框处理

如遇到选择商品类型、选择收货地址等

from selenium.webdriver.support.select import Select
sel = Select(driver.find_element_by_name('cat_id'))
sel.select_by_value('8')    # 通过值选中
sel.select_by_index('4')    # 通过下标选中
sel.select_by_visible_text('充电器')    # 通过文本选中,必须与文本一样包括空格

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值