def setUpClass(cls): cls.u = u2.connect_usb() cls.u.healthcheck() # 解锁屏幕并启动uiautomator服务 hrp = htmlreport.HTMLReport(cls.u, 'report') hrp.patch_click() cls.u.make_toast("测试开始")
def setUpClass(self): self.device = ut2.connect() self.hrp = htmlreport.HTMLReport(self.device, 'Report/' + self.__name__) self.hrp.patch_click() self.testVer = ver001("Apk/test.apk", self.device) self.daf = DirAndFiles()
def init(): """初始化操作""" d.healthcheck() d.implicitly_wait(10) # 设置全局等待时间 hrp = htmlreport.HTMLReport(d, 'report') # 日志输出 hrp.patch_click()
def setUpClass(cls): cls.u = u2.connect_usb() cls.u.healthcheck() # 解锁屏幕并启动uiautomator服务 hrp = htmlreport.HTMLReport(cls.u, 'report') hrp.patch_click() # cls.u.disable_popups(True) # 允许自动处理弹出框 cls.u.make_toast("测试开始", 3)
def __init__(self): try: self.d = u2.connect_usb('CSXDU17612012791') except Exception as e: print(e) # 全局设置,每个ui点击之后休眠1.5s self.d.click_post_delay = 5 hrp = htmlreport.HTMLReport(self.d) hrp.patch_click()
def setUpClass(cls): # cls.u= u2.connect('192.168.1.40') cls.u = u2.connect_usb("5LM0216524006922") # cls.u.app_install("/Users/zh/Downloads/app-baidu-release(7).apk") cls.u.healthcheck() hrp = htmlreport.HTMLReport(cls.u, "report") hrp.patch_click() # cls.u.disable_popups(True)#允许自动处理弹出框 cls.u.make_toast("测试开始", 3)
@property def text(self): return self.elem.attrib.get("text") @property def attrib(self): return self.elem.attrib if __name__ == "__main__": init() import uiautomator2.ext.htmlreport as htmlreport d = uiautomator2.connect() hrp = htmlreport.HTMLReport(d) # take screenshot before each click hrp.patch_click() d.app_start("com.netease.cloudmusic", stop=True) # watchers d.ext_xpath.when("跳过").click() # d.ext_xpath.when("知道了").click() # steps d.ext_xpath("//*[@text='私人FM']/../android.widget.ImageView").click() d.ext_xpath("下一首").click() d.ext_xpath.sleep_watch(2) d.ext_xpath("转到上一层级").click()
class RedHatCheckPoint(unittest.TestCase): global d # 全局变量 d = u2.connect("2bb4c0bd") # 连接手机 global hrp hrp = htmlreport.HTMLReport(d) hrp.patch_click() def test_01(self): '''登录''' # time.sleep(2) # d(text="开始体验").click() d.app_start("com.youyu.youyulive") # 启动app sleep(2) d.set_fastinput_ime(True) # 切换输入法,使用专用输入法 sleep(2) d.watcher("确定").when(text="确定").click(text="确定") # 监控是否有权限获取弹出框 sleep(2) for i in range(5): d.watcher("允许").when(text="允许").click(text="允许") # 允许获取权限 d.clear_text() sleep(5) d.watcher("知道了").when(text="知道了").click(text="知道了") # 检测关闭更新提示 sleep(2) d(resourceId="com.youyu.youyulive:id/loginMainPhone").click() # 点击登录按钮 sleep(2) d(resourceId="com.youyu.youyulive:id/mainAccountEdit").set_text( "18008062016") sleep(2) d(resourceId="com.youyu.youyulive:id/mainPwdEdit").set_text("123456") sleep(2) d(text="登录").click() d.set_fastinput_ime(False) # 切换输入法,关闭专用输入法 d.watcher("允许").when(text="允许").click(text="允许") # 点击可能的系统弹框 d.watcher("领取").when(text="领取").click(text="领取") # 点击可能的系统弹框 self.assertTrue( d(resourceId="com.youyu.youyulive:id/btmMenuMainImg").wait( timeout=3)) # 检查不存在 def test_02(self): "查看直播" d(text=u"热门").click() # 点击热门 sleep(2) d(className="android.widget.ImageView", instance=4).click() # 选择任意已有直播 sleep(2) d.click(0.113, 0.915) # 点击对话框 sleep(1) d.click(0.453, 0.678) # 输入一个字符 sleep(1) d.click(0.481, 0.899) # 输入 sleep(1) d(text=u"发送").click() # 点击热门 sleep(1) d.click(0.793, 0.405) # 退出对话框 sleep(1) d.click(0.932, 0.91) # 点击送礼物 sleep(1) d.click(0.878, 0.92) # 点击赠送 sleep(1) d.click(0.957, 0.062) # 关闭礼物栏 sleep(1) d.click(0.957, 0.062) # 弹出退出框 sleep(1) d.click(0.691, 0.451) # 退出直播 self.assertFalse( d(resourceId="com.youyu.youyulive:id/btmMenuMainImg").wait( timeout=3)) # 检查是否正确 def test_03(self): "发起直播" d(resourceId="com.youyu.youyulive:id/btmMenuLiveImg").click() # 点击发起直播 sleep(2) d(text=u"开启直播").click() # 点击开启直播 sleep(2) d.watcher("确定").when(text="确定").click(text="确定") # 点击可能的系统弹框 sleep(1) d.watcher("允许").when(text="允许").click(text="允许") # 点击可能的系统弹框 sleep(2) d(text=u"开启直播").click() # 点击开启直播 sleep(2) d(text=u"开启直播").click() # 点击开启直播 sleep(30) d.press("back") # 返回键退出 sleep(2) d(text=u"确定").click() # 确定退出 self.assertFalse( d(resourceId="com.youyu.youyulive:id/btmMenuMainImg").wait( timeout=3)) # 检查是否正确
class youyuLiveTestCase(unittest.TestCase): global d # 全局变量 d = u2.connect("2bb4c0bd") # 连接手机 global hrp hrp = htmlreport.HTMLReport(d) hrp.patch_click() # def setUp(self): # d.app_start("com.youyu.youyulive") # 启动app # # def tearDown(self): # d.app_stop("com.youyu.youyulive") # 关闭app def test_01(self): '''登录''' # time.sleep(2) # d(text="开始体验").click() d.app_start("com.youyu.youyulive") # 启动app time.sleep(2) d.set_fastinput_ime(True) # 切换输入法,使用专用输入法 d(text="请输入手机号或您的ID号").set_text("18008062016") time.sleep(2) d(text="请输入账户密码").set_text("123456") time.sleep(2) d(text="登录").click() d.set_fastinput_ime(False) # 切换输入法,关闭专用输入法 d.watcher("允许").when(text="允许").click(text="允许") # 点击可能的系统弹框 d.watcher("领取").when(text="领取").click(text="领取") # 点击可能的系统弹框 self.assertTrue(d(text="关注").wait(timeout=3)) # 检查不存在 def test_02(self): '''首页中页面检查''' time.sleep(2) d(text="热门").click() time.sleep(1) d(text="关注").click() time.sleep(1) d(text="最新").click() time.sleep(1) d(resourceId="com.youyu.youyulive:id/main_index_imgbtn_chat").click() # 信息按钮 time.sleep(1) d(resourceId="com.youyu.youyulive:id/jmui_return_btn_m").click() # 返回 self.assertTrue(d(resourceId="com.youyu.youyulive:id/jmui_return_btn_m").wait(timeout=3)) # 判断返回按钮已经不在 def test_03(self): '''头像检查''' d(resourceId="com.youyu.youyulive:id/main_rl_me").click() # 点击个人 time.sleep(1) d(resourceId="com.youyu.youyulive:id/my_me_photo").click() # 点击头像 time.sleep(1) d(resourceId="com.youyu.youyulive:id/edit_avatar_imgbtn_back").click() # 点击返回 time.sleep(1) self.assertTrue(d(resourceId="com.youyu.youyulive:id/my_me_photo").wait(timeout=3)) # 判断头像出现 def test_04(self): '''直播检查''' d(resourceId="com.youyu.youyulive:id/item_playback").click() # 点击直播 time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click() # 点击返回 time.sleep(1) self.assertTrue(d(resourceId="com.youyu.youyulive:id/my_me_photo").wait(timeout=3)) # 判断头像出现 def test_04(self): '''等级检查''' d(resourceId="com.youyu.youyulive:id/item_level").click() # 点击等级 time.sleep(1) d(text=u"主播").click() time.sleep(1) d(text=u"土豪").click() time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click() # 返回 time.sleep(1) self.assertTrue(d(resourceId="com.youyu.youyulive:id/my_me_photo").wait(timeout=3)) # 判断头像出现 def test_05(self): '''账户检查''' d(resourceId="com.youyu.youyulive:id/item_money").click() # 账户 time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click() # 返回 time.sleep(1) self.assertTrue(d(resourceId="com.youyu.youyulive:id/my_me_photo").wait(timeout=3)) # 判断头像出现 def test_06(self): '''退出登录''' time.sleep(3) d.drag(0.48, 0.82, 0.48, 0.32) # 向下滑动 time.sleep(2) d(text="设置").click() time.sleep(2) d(text="退出登录").click() time.sleep(2) self.assertFalse(d(text="退出登录").wait(timeout=3)) # 检查退出登录按钮已不在
def cilck_Log(self): u = u2.connect() hrp = htmlreport.HTMLReport(u) hrp.patch_click()
def __init__(self): self.d = u2.connect_usb('A1CEBNA227ZK') self.d.click_post_delay = 1.5 Testreport = htmlreport.HTMLReport(self.d) Testreport.patch_click()
class MetaWellTest(unittest.TestCase): d = atx.connect('3487e851') #d = u2.connect('192.168.191.2') #d = u2.connect('192.168.1.53') hrp = htmlreport.HTMLReport(d) #hrp.patch_click() cnt = Control def setUp(self): #self.d.app_start("com.bianla.international") self.d.start_app("com.bianla.international") def test_a_startPagecheck(self): '''登录注册页面元素检查''' # 启动页检查 lognin = self.d(resourceId=self.cnt.login_button_id) signup = self.d(resourceId=self.cnt.sign_button_id) try: self.assertEqual("登录", lognin.get_text()) logger().info("登录按钮检查通过") except AssertionError: raise try: self.assertEqual("注册", signup.get_text()) logger().info("注册按钮检查通过") except AssertionError: raise # 进入登录页面 lognin.click() self.d(resourceId=self.cnt.register_country).click() count_login = self.d(resourceId=self.cnt.contry_list).info print(count_login) contry_login = {} go = 1 while go == 1: for i in range(count_login['childCount'] * 2 - 1): ins = i + 1 print(ins) city = self.d(resourceId=self.cnt.contry_list).child_selector(className=self.cnt.contry_class, instance\ = ins).child_selector(resourceId=self.cnt.register_country).get_text() if (city == '其他'): number = '0' else: number = self.d(resourceId=self.cnt.contry_list).child_selector(className=self.cnt.contry_class,\ instance = ins).child_selector(resourceId=self.cnt.register_num).get_text() print(city, number) contry_login[city] = number if (ins == count_login['childCount'] * 2 - 1): if (contry_login.__contains__('其他')): go = 0 break self.d(resourceId="com.bianla.international:id/listView" ).scroll(steps=count_login['childCount'] * 7) #self.d.swipe(size[0]/2, size[1]-20, size[0]/2, 300, 0.5) logger().info(contry_login) logger().info(operator.eq(contry_login, self.cnt.contry_login)) try: self.assertDictEqual(self.cnt.contry_login, contry_login) logger().info("登录国家列表对比通过") except AssertionError: logger().error("登录国家列表对比失败") raise # 进入注册页面 self.d.press("back") self.d.press("back") signup.click() # 地区页面元素检查 self.d(resourceId=self.cnt.register_country).click() contry_register = {} count_register = self.d(resourceId=self.cnt.contry_list).info go = 1 while go == 1: for i in range(count_register['childCount'] * 2 - 1): ins = i + 1 print(ins) city = self.d(resourceId=self.cnt.contry_list).child_selector(className=self.cnt.contry_class, instance\ = ins).child_selector(resourceId=self.cnt.register_country).get_text() number = self.d(resourceId=self.cnt.contry_list).child_selector(className=self.cnt.contry_class, instance\ = ins).child_selector(resourceId=self.cnt.register_num).get_text() print(city, number) contry_register[city] = number if (ins == count_register['childCount'] * 2 - 1): if (contry_register.__contains__('澳门')): go = 0 break self.d(resourceId="com.bianla.international:id/listView" ).scroll(steps=count_register['childCount'] * 7) #self.d.swipe(size[0]/2, size[1]-20, size[0]/2, 300, 0.5) logger().info(contry_register) logger().info(operator.eq(contry_register, self.cnt.contry_register)) try: self.assertDictEqual(contry_register, self.cnt.contry_register, "注册列表国家对比") logger().info("注册页面国家对比通过") except AssertionError: logger().info("注册页面国家对比失败") raise self.d.press("back") self.d.press("back") def test_b_sign(self): '''注册流程测试''' phone_number = "13" + str(int(time.time() / 10)) nick_name = "test昵称123" height = "167" birthday = "04/18/1988" logger().info("点击注册") self.d(resourceId=self.cnt.sign_button_id).click() logger().info("输入手机号:" + phone_number) self.d( resourceId=self.cnt.register_phone_field).send_keys(phone_number) logger().info("获取验证码") self.d(resourceId=self.cnt.send_verification).click() logger().info("输入验证码:" + "1234") self.d(resourceId=self.cnt.verifi_code).send_keys("1234") logger().info("设置密码:123456") self.d(resourceId=self.cnt.pass_word).send_keys("123456") logger().info("确认密码") self.d(resourceId=self.cnt.pass_word_confirm).click() logger().info("选择头像") self.d(resourceId=self.cnt.man).click() logger().info("设置生日") self.d(resourceId=self.cnt.birthday).click() self.d(resourceId=self.cnt.birthday_confirm).click() logger().info("设置身高") self.d(resourceId=self.cnt.height).send_keys(height) self.d.press("back") logger().info("设置昵称") self.d(resourceId=self.cnt.nick_name).send_keys(nick_name) self.d.press("back") logger().info("个人信息确认") self.d(resourceId=self.cnt.information_confirm).click() logger().info("进入我的页面") self.d(className="android.widget.LinearLayout", instance=18).click() self.d(text=u"编辑资料").click() logger().info("昵称检查") try: self.assertEqual( nick_name, self.d(resourceId="com.bianla.international:id/et_edit_nick"). get_text()) logger().info("昵称与设置一致") except AssertionError: logger().error("昵称与注册设置不一致") raise logger().info("身高检查") try: self.assertEqual( height, self.d(resourceId="com.bianla.international:id/et_edit_height" ).get_text()) logger().info("身高与设置一致") except AssertionError: logger().error("身高与注册设置不一致") raise logger().info("生日检查") try: self.assertEqual( birthday, self.d(resourceId="com.bianla.international:id/tv_birthday"). get_text()) logger().info("生日与设置一致") except AssertionError: logger().error("生日与注册设置不一致") raise def tearDown(self): print("结束") #self.d.app_stop("com.bianla.international") self.d.stop_app("com.bianla.international")
class youyuLiveTestCase(unittest.TestCase): global d # 全局变量 d = u2.connect("4176a878") # 连接手机 global hrp hrp = htmlreport.HTMLReport(d) hrp.patch_click() # def setUp(self): # d.app_start("com.youyu.youyulive") # 启动app # # def tearDown(self): # d.app_stop("com.youyu.youyulive") # 关闭app def test_01(self): '''登录''' # time.sleep(2) # d(text="开始体验").click() d.app_start("com.youyu.youyulive") # 启动app time.sleep(2) d.set_fastinput_ime(True) # 切换输入法,使用专用输入法 d.clear_text() time.sleep(1) d(resourceId="com.youyu.youyulive:id/login_phone").set_text( "18008062016") time.sleep(2) d(resourceId="com.youyu.youyulive:id/login_password").set_text( "123456") time.sleep(2) d(text="登录").click() d.set_fastinput_ime(False) # 切换输入法,关闭专用输入法 d.watcher("允许").when(text="允许").click(text="允许") # 点击可能的系统弹框 d.watcher("领取").when(text="领取").click(text="领取") # 点击可能的系统弹框 self.assertTrue(d(text="关注123").wait(timeout=3)) # 检查不存在 def test_02(self): '''首页中页面检查''' time.sleep(2) d(text="热门").click() time.sleep(1) d(text="关注").click() time.sleep(1) d(text="最新").click() time.sleep(1) d(resourceId="com.youyu.youyulive:id/main_index_imgbtn_chat").click( ) # 信息按钮 time.sleep(1) d(resourceId="com.youyu.youyulive:id/jmui_return_btn_m").click() # 返回 self.assertTrue( d(resourceId="com.youyu.youyulive:id/jmui_return_btn_m").wait( timeout=3)) # 判断返回按钮已经不在 def test_03(self): '''看直播''' time.sleep(2) d(text="热门").click() time.sleep(1) d(className="android.widget.LinearLayout", instance=10).click() # 点击第一个直播 time.sleep(1) d(resourceId="com.youyu.youyulive:id/room_imgbtn_public_chat").click( ) # 点击消息 time.sleep(1) d.click(0.5, 0.3) # 关闭消息 time.sleep(1) d(resourceId="com.youyu.youyulive:id/room_imgbtn_prvchat").click( ) # 点击信息 time.sleep(1) d(resourceId="com.youyu.youyulive:id/chat_sysback").click() # 返回 time.sleep(1) d(resourceId="com.youyu.youyulive:id/room_imgbtn_setting").click( ) # 点击设置 time.sleep(1) d(resourceId="com.youyu.youyulive:id/setting_cancel").click() # 点击取消 time.sleep(1) d(resourceId="com.youyu.youyulive:id/room_imgbtn_share").click( ) # 点击分享 time.sleep(1) d.click(0.5, 0.3) # 关闭消息 time.sleep(300) d(resourceId="com.youyu.youyulive:id/room_imgbtn_close").click( ) # 点击关闭 time.sleep(1) self.assertTrue( d(resourceId="com.youyu.youyulive:id/index_hot_btn").wait( timeout=3)) # 检查返回热门界面 def test_04(self): '''直播''' d(resourceId="com.youyu.youyulive:id/main_paly").click() # 直播 time.sleep(1) d(resourceId="com.youyu.youyulive:id/room_create_btn_start_live" ).click() # 普通直播 time.sleep(1) d(resourceId="com.youyu.youyulive:id/previewBtn").click() # 开始直播 time.sleep(2) d(resourceId="com.youyu.youyulive:id/dialog_message_commit").click( ) # 确定开始直播 time.sleep(5) d(resourceId="com.youyu.youyulive:id/room_imgbtn_close").click( ) # 关闭直播 time.sleep(1) d(resourceId="com.youyu.youyulive:id/dialog_message_commit").click( ) # 确定关闭 time.sleep(1) d(resourceId="com.youyu.youyulive:id/dialog_room_finish_btn_finish" ).click() # 返回首页 time.sleep(1) self.assertTrue( d(resourceId="com.youyu.youyulive:id/index_hot_btn").wait( timeout=3)) # 检查返回热门界面 def test_05(self): '''个人中头像检查''' d(resourceId="com.youyu.youyulive:id/main_rl_me").click() # 点击个人 time.sleep(1) d(resourceId="com.youyu.youyulive:id/my_me_photo").click() # 点击头像 time.sleep(1) d(resourceId="com.youyu.youyulive:id/edit_avatar_imgbtn_back").click( ) # 点击返回 time.sleep(1) self.assertTrue( d(resourceId="com.youyu.youyulive:id/my_me_photo").wait( timeout=3)) # 判断头像出现 def test_06(self): '''个人中直播检查''' d(resourceId="com.youyu.youyulive:id/item_playback").click() # 点击直播 time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click( ) # 点击返回 time.sleep(1) self.assertTrue( d(resourceId="com.youyu.youyulive:id/my_me_photo").wait( timeout=3)) # 判断头像出现 def test_07(self): '''个人中等级检查''' d(resourceId="com.youyu.youyulive:id/item_level").click() # 点击等级 time.sleep(1) d(text=u"主播").click() time.sleep(1) d(text=u"土豪").click() time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click( ) # 返回 time.sleep(1) self.assertTrue( d(resourceId="com.youyu.youyulive:id/my_me_photo").wait( timeout=3)) # 判断头像出现 def test_08(self): '''个人中账户检查''' d(resourceId="com.youyu.youyulive:id/item_money").click() # 账户 time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click( ) # 返回 time.sleep(1) self.assertTrue( d(resourceId="com.youyu.youyulive:id/my_me_photo").wait( timeout=3)) # 判断头像出现 def test_09(self): '''个人中师徒收益''' d(resourceId="com.youyu.youyulive:id/fragment_me_item_master_bonus" ).click() # 师徒收益 time.sleep(1) d(resourceId="com.youyu.youyulive:id/bonus_taking").click() # 提取收益 time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click( ) # 返回 time.sleep(1) self.assertTrue(d(text="师徒收益").wait(timeout=3)) # 检查返回设置 def test_10(self): '''个人中邮箱''' d(resourceId="com.youyu.youyulive:id/fragment_me_item_email").click( ) # 邮箱 time.sleep(1) d(resourceId="com.youyu.youyulive:id/email_send_box_btn").click( ) # 发件箱 time.sleep(1) d(resourceId="com.youyu.youyulive:id/send_email_btn").click() # 发邮件 time.sleep(1) time.sleep(2) d.set_fastinput_ime(True) # 切换输入法,使用专用输入法 d(resourceId="com.youyu.youyulive:id/user_id").set_text( "123456") # 输入用户 time.sleep(2) d(resourceId="com.youyu.youyulive:id/send_email_title").set_text( "输入标题") # 输入标题 time.sleep(2) d(resourceId="com.youyu.youyulive:id/send_email_content").set_text( "输入内容") # 输入内容 time.sleep(2) d(resourceId="com.youyu.youyulive:id/send_email_btn").click() d.set_fastinput_ime(False) # 切换输入法,关闭专用输入法 time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click( ) # 返回 time.sleep(1) d(resourceId="com.youyu.youyulive:id/imgbtn_toolbar_back").click( ) # 返回 def test_11(self): '''退出登录''' time.sleep(3) d.drag(0.48, 0.82, 0.48, 0.32) # 向下滑动 time.sleep(2) d(text="设置").click() time.sleep(2) d(text="退出登录").click() time.sleep(2) self.assertFalse(d(text="退出登录").wait(timeout=3)) # 检查退出登录按钮已不在
class TestStringMethods(unittest.TestCase): d = u2.connect('192.168.191.2') hrp = htmlreport.HTMLReport(d) hrp.patch_click() def setUp(self): logger().info("打开计算器") self.d.app_start("com.ibox.calculators") def testPlus(self): '''乘法运算''' logger().info("点击7") self.d(resourceId="com.ibox.calculators:id/digit6").click() logger().info("点击X") self.d(resourceId="com.ibox.calculators:id/mul").click() logger().info("点击9") self.d(resourceId="com.ibox.calculators:id/digit8").click() logger().info("点击=") equal = self.d(resourceId="com.ibox.calculators:id/equal") equal.click() print(equal.get_text()) print(self.d.info) logger().info("断言") # ans = self.d(resourceId="com.ibox.calculators:id/cv", className="android.widget.TextView", instance="2") ans = self.d(resourceId="com.ibox.calculators:id/cv").child_selector\ (className="android.widget.TextView", instance=1) ans_text = ans.get_text() self.assertEqual(ans_text, "48") def testAdd(self): '''加法运算''' logger().info("点击7") self.d(resourceId="com.ibox.calculators:id/digit7").click() logger().info("点击+") self.d(resourceId="com.ibox.calculators:id/plus").click() logger().info("点击9") self.d(resourceId="com.ibox.calculators:id/digit9").click() logger().info("点击=") equal = self.d(resourceId="com.ibox.calculators:id/equal") equal.click() print(equal.get_text()) print(self.d.info) logger().info("断言") # ans = self.d(resourceId="com.ibox.calculators:id/cv", className="android.widget.TextView", instance="2") ans = self.d(resourceId="com.ibox.calculators:id/cv").child_selector\ (className="android.widget.TextView", instance=1) ans_text = ans.get_text() self.assertEqual(ans_text, "16") def testMinus(self): '''减法运算''' logger().info("点击7") self.d(resourceId="com.ibox.calculators:id/digit7").click() logger().info("点击-") self.d(resourceId="com.ibox.calculators:id/minus").click() logger().info("点击9") self.d(resourceId="com.ibox.calculators:id/digit9").click() logger().info("点击=") equal = self.d(resourceId="com.ibox.calculators:id/equal") equal.click() print(equal.get_text()) print(self.d.info) logger().info("断言") # ans = self.d(resourceId="com.ibox.calculators:id/cv", className="android.widget.TextView", instance="2") ans = self.d(resourceId="com.ibox.calculators:id/cv").child_selector\ (className="android.widget.TextView", instance=1) ans_text = ans.get_text() self.assertEqual(ans_text, "16") def tearDown(self): self.d.app_stop("com.ibox.calculators") print(1)