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

 

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

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

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

  1. assertEqual(a, b) # a == b

  2. assertNotEqual(a, b) # a != b

  3. assertTrue(x) # bool(x) is True

  4. assertFalse(x) # bool(x) is False

  5. assertIs(a, b) # a is b

  6. assertIsNot(a, b) # a is not b

  7. assertIsNone(x) # x is None

  8. assertIsNotNone(x) # x is not None

  9. assertIn(a, b) # a in b

  10. assertNotIn(a, b) # a not in b

  11. assertIsInstance(a, b) # isinstance(a, b)

  12. assertNotIsInstance(a, b) # not isinstance(a, b)

  13. assertGreater(a, b) # a > b

  14. assertGreaterEqual(a, b) # a >= b

  15. assertLess(a, b) # a < b

  16. assertLessEqual(a, b) # a <= b

实例代码块:

  1. aq = self.locator(self.ass).text # 用于断言登录成功的文本内容

  2. try:

  3. self.assertIn("欢迎您", aq)

  4. self.test_log.info("普通信息 [test_01_login] 测试成功-预期结果 [%s]" % state) #在日志里显示

  5. self.close()

  6. # self.logger.info("test_01_login:测试成功-预期结果 [%s]" % state) # 日志文件(断言失败会写到日志里)

  7. except AssertionError:

  8. self.picture()

  9. self.test_log.error("错误信息 [test_01_login] 测试失败")

  10. # self.logger.info("test_01_login:测试失败")

  11. raise AssertionError # 抛出异常

异常类型:
AssertionErrorassert语句失败

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

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

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

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

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

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

KeyboadrInterrupt:Ctrl+c被按下

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

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

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

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

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

二、fame框架

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

 
  1. # 进入框架

  2. driver.switch_to.frame("menu-frame")

  3. driver.find_element(By.CSS_SELECTOR, "a[href='goods.php?act=list']").click()

  4. # 退出框架

  5. driver.switch_to.default_content() # 退出框架

  6. # 再进入框架(操作元素)

  7. driver.switch_to.frame("menu-frame")

  8. driver.find_element(By.LINK_TEXT, '添加新商品').click()

三、下拉框处理

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

 
  1. from selenium.webdriver.support.select import Select

  2. sel = Select(driver.find_element_by_name('cat_id'))

  3. sel.select_by_value('8') # 通过值选中

  4. sel.select_by_index('4') # 通过下标选中

  5. sel.select_by_visible_text('充电器') # 通过文本选中,必须与文本一样包括空格

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值