博客
关于我
10-appium-toast定位
阅读量:341 次
发布时间: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/

你可能感兴趣的文章
Python Seborn绘制空白直方图
查看>>
Python Selenium - 获取href值
查看>>
Python Selenium实现自动化测试及Chrome驱动使用!
查看>>
Python Selenium搭建UI自动化测试框架
查看>>
Python Selenium模块详解
查看>>
Python selenium爬取影评生成词云图
查看>>
python selenium自动化测试报告
查看>>
Python selenium自动化测试框架实战 —— 登录测试案例
查看>>
Python Selenium设计模式 —— POM
查看>>
Python Serial:如何使用 read 或 readline 函数一次读取多个字符
查看>>
Python set([]) 如何检查两个对象是否相等?一个对象需要定义哪些方法来自定义它?
查看>>
Python setup.py:数据文件无法复制目录:不存在或不是常规文件
查看>>
Python setuptools sdist:仅安装版本化文件
查看>>
Python Shell下使用matplotlib
查看>>
Python Slice How-to,我知道Python Slice,但我怎么才能使用内置的Slice对象呢?
查看>>
python socket分包发送数据
查看>>
python socket模块_Python socket模块实现TCP服务端客户端
查看>>
Python SOCKS5代理客户端HTTPS
查看>>
Python Soc网络分析:通过使用函数迭代列表来计算机会网络
查看>>
python转换已转义的字符串
查看>>