目录

  1. 普通断言assert
  2. Hamcrest 断言

获取属性:

1
2
s_element = self.driver.find_element(MobileBy.XPATH, "(//*[@text='天真的和感伤的小说家'])[2]")		# 定位元素
s_element.get_attribute("content-desc") # 使用get_attribute方法获取元素属性名所对应的属性值

普通断言assert

True通过,False抛出异常

1
2
assert 5 < 8   # True
assert 'a' in 'this' # False

如果有多条断言,assert执行到失败的测试用例就不会再往下继续执行。

Hamcrest 断言

hamcrest/PyHamcrest: Hamcrest matchers for Python (github.com)

文档:Hamcrest

Hamcrest是一个以测试为目的,能组合成零或表达式的匹配器类库,用于编写断言的框架;

其中提供了大量的的“匹配器”方法,每个匹配器用于执行特定操作,预定义匹配器具体的用法都可以在上方的pyhamcrest github链接中的 README中找到;

可以编写自定义匹配器

支持多语言,例如:java、python、php等,这些库都可以在github上找到。

安装

①pip install PyHamcrest

②setting中安装到当前项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from hamcrest import assert_that, equal_to
import unittest


class BiscuitTest(unittest.TestCase):
def testEquals(self):
theBiscuit = Biscuit("Ginger")
myBiscuit = Biscuit("Ginger")
assert_that(theBiscuit, equal_to(myBiscuit))
# assert_that(期望值, 匹配器(实际结果), "测试值标识符")
# 测试值标识符可以用来区分多个断言,或错误提示,它会显示在Error中


if __name__ == "__main__":
unittest.main()
1
2
3
# from hamcrest import *
assert_that(10, equal_to(10), '提示') # 匹配相等对象
assert_that(10, close_to(8, 2)) # 接近于某一值,8上下浮动2

问题is_Syntactic sugar如何使用?

找到详细的文档了:[PyHamcrest Tutorial — PyHamcrest 1.8.5 文档](https://pyhamcrest.readthedocs.io/en/release-1.8/tutorial/#:~:text=The assert_that function is a stylized sentence for,equal to another using the Python %3D%3D operator.)