【发布时间】:2020-01-27 20:38:28
【问题描述】:
我尝试使用python3.7 + appium + unittest 来构建一个简单的自动化测试框架。我遇到了一个问题,即我的测试用例脚本在将整个断言函数封装到另一个 python 脚本后总是在 asserTrue() 失败。此断言用于检查当前屏幕是否有用户需要的文本。 我的测试用例脚本如下:
......
class Test1(unittest.TestCase):
@classmethod
def setUpClass(self):
print("execute setUpClass")
@classmethod
def tearDownClass(self):
print("execute tearDownClass")
def test_demo(self):
time.sleep(1)
try:
assert_text = driver.find_element_by_android_uiautomator('new UiSelector().text("WLAN")')
except Exception as e:
assert_text = False
self.assertTrue(assert_text,'Fail to find text "WLAN"')
文本“WLAN”在当前屏幕上作为一个元素 100%。上面的代码可以成功运行但失败。但是在我将以下部分作为函数放入另一个脚本后,它总是会得到 p>
AssertionError: False is not true : 找不到文本“WLAN”
try:
assert_text = driver.find_element_by_android_uiautomator('new UiSelector().text("WLAN")')
except Exception as e:
assert_text = False
self.assertTrue(assert_text,'Fail to find text "WLAN"')
封装脚本assert_zsq.py是这样的:
def Verify_Text(self,req_text):
try:
assert_text = driver.find_element_by_android_uiautomator('new UiSelector().text("{0}")'.format(req_text))
except Exception as e:
assert_text = False
self.assertTrue(assert_text,'Fail to find text "{0}"'.format(req_text))
还将测试用例脚本的主要操作更改为:
def test_demo(self):
time.sleep(1)
Verify_Text(self,'WLAN')
知道为什么 asserTrue() 总是在封装后失败,即使屏幕上显示了所需的文本?提前致谢!
【问题讨论】:
标签: python android python-3.x appium python-unittest