博客
关于我
10-appium-toast定位
阅读量:340 次
发布时间:2019-03-04

本文共 2251 字,大约阅读时间需要 7 分钟。

前言

toast在Android开发中是一个常用的UI提示组件,通过Appium框架可以进行自动化操作。本文将介绍toast的样式设置以及如何封装定位判断toast的实现方法。

toast样式

toast的样式设置可以通过代码实现,例如背景颜色、字体大小、显示位置等属性。通过配置 toastLayout.xml 文件,可以自定义toast的显示效果。以下是通过代码实现的样式设置示例:
# -*- coding: utf-8 -*-from appium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdesired_capabilities = {      "platformName": "Android",      "deviceName": "127.0.0.1:62001",      "platformVersion": "7.1.2",      "appPackage": "com.jingdong.app.mall",      "appActivity": ".main.MainActivity"  }  driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_capabilities)  driver.implicitly_wait(10)  # 点击同意  driver.find_element_by_id('com.jingdong.app.mall:id/bqd').click()  time.sleep(5)  # 返回  driver.back()  text = '再次返回退出京东'

封装toast定位判断

为了方便定位和判断toast的存在,可以通过编写自定义函数来实现。以下是一个封装定位toast的实现示例:
# -*- coding: utf-8 -*-from appium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdef is_toast_exist(driver, text, timeout=30, interval=0.5):      """      :param driver: 驱动      :param text: toast文案      :param timeout: 超时时长,单位s      :param interval: 刷新间隔时长,单位s      :return: True/False      """      try:          toast_loc = ("xpath", f".//*[contains(@text,'{text}')]")          WebDriverWait(driver, timeout, interval).until(EC.presence_of_element_located(toast_loc))          return True      except Exception as e:          print(e)          return False  if __name__ == '__main__':      driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_capabilities)      driver.implicitly_wait(10)      # 等待Activity      flag = driver.wait_activity('.main.MainActivity', 10)      print(flag)      # 点击同意      driver.find_element_by_id('com.jingdong.app.mall:id/bqd').click()      time.sleep(5)      # 返回      driver.back()      text = '再次返回退出京东'      if is_toast_exist(driver, text):          toast_text = driver.find_element_by_xpath(f"//*[contains(@text,'{text}')]").text          print("toast_text:", toast_text)      else:          print('未定位到toast')

以上代码展示了如何通过Appium框架对toast进行定位和判断操作。通过封装函数的方式,可以更方便地在测试用例中使用,减少代码的复杂度。

转载地址:http://eyle.baihongyu.com/

你可能感兴趣的文章
ORA-00923: 未找到要求的 FROM 关键字
查看>>
ORA-00932: inconsistent datatypes: expected - got NCLOB【ORA-00932: 数据类型不一致: 应为 -, 但却获得 NCLOB 】【解决办法】
查看>>
ORA-00942 表或视图不存在
查看>>
ORA-01034: ORACLE not available
查看>>
ORA-01152: 文件 1 没有从过旧的备份中还原
查看>>
ORA-01207:文件比控制文件更新 - 旧的控制文件
查看>>
ORA-01795: 列表中的最大表达式数为 1000
查看>>
ORA-06575: 程序包或函数 NO_VM_DROP_PROC 处于无效状态
查看>>
ORA-08102的错误
查看>>
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor异常
查看>>
ORA-12514: TNS:listener does not currently know of service问题原因
查看>>
ora-12541:tns:no listener
查看>>
【docker知识】联合文件系统(unionFS)原理
查看>>
ORACEL学习--理解over()函数
查看>>
ORAchk-数据库健康检查
查看>>
oracle 10g crs命令,Oracle 10g CRS安装问题解决一例
查看>>
Oracle 10g ORA-01034: ORACLE not available 错误
查看>>
oracle 10g的安装配置
查看>>
Oracle 11.2.0.4 x64 RAC修改public/private/vip/scan地址
查看>>
Oracle 11G INDEX FULL SCAN 和 INDEX FAST FULL SCAN 对比分析
查看>>