当前位置: 首页 > wzjs >正文

网站建设网站维护西安关键词排名推广

网站建设网站维护,西安关键词排名推广,py怎么做网站,专业北京翻译公司Appium之Toast元素识别教程与实例 一、Toast简介 Toast是Android系统中的轻量级消息提示框,以浮动形式短暂显示(通常2-3秒),无法被点击且不会获取焦点。常见于登录失败、操作提示等场景,如“密码错误”或“网络异常”。…

Appium之Toast元素识别教程与实例
一、Toast简介
Toast是Android系统中的轻量级消息提示框,以浮动形式短暂显示(通常2-3秒),无法被点击且不会获取焦点。常见于登录失败、操作提示等场景,如“密码错误”或“网络异常”。传统定位工具无法直接捕获,需借助Appium的特定配置实现。

二、环境准备

Node.js安装

官网下载并安装Node.js,验证安装成功:npm -v。
切换npm镜像源

使用淘宝镜像加速依赖下载:

npm config set registry https://registry.npm.taobao.org

安装cnpm替代npm:

npm install -g cnpm --registry=https://registry.npm.taobao.org
```[2](@ref)[3](@ref)

安装uiautomator2驱动

执行命令:

cnpm install appium-uiautomator2-driver

安装后检查node_modules目录是否存在相关文件。
安装Selenium

通过pip安装:

pip install selenium

验证版本:

pip show selenium

三、关键配置
在Capability中必须添加以下参数以启用UiAutomator2引擎:

desired_caps['automationName'] = 'uiautomator2'

⚠️ 注意:此配置可能导致Appium运行速度变慢,非必要场景建议使用默认引擎。

四、定位Toast元素的方法

1.XPath定位

通过文本内容:error_message = “登录密码错误”

xpath = '//*[@text="{}"]'.format(error_message)
toast_element = WebDriverWait(driver, 5).until(lambda x: x.find_element_by_xpath(xpath))
```[2](@ref)[5](@ref)

通过class属性(通用方法):

toast_element = driver.find_element(AppiumBy.XPATH, "//*[@class='android.widget.Toast']")
```[6](@ref)[7](@ref)

2.显式等待与动态函数
使用WebDriverWait确保捕获短暂出现的Toast:

from selenium.webdriver.support.ui import WebDriverWait
toast = WebDriverWait(driver, timeout=5, poll_frequency=0.5).until(lambda x: x.find_element(AppiumBy.XPATH, "//*[@class='android.widget.Toast']")
)
```[5](@ref)[6](@ref)

五、实战案例:登录失败捕获Toast
场景:输入错误密码后获取提示“账号或密码错误”。
代码示例:

# coding=utf-8  # 必须添加,避免中文编码问题[3](@ref)[5](@ref)
from appium import webdriver
from selenium.webdriver.support.ui import WebDriverWait# 配置Capability
desired_caps = {"platformName": "Android","automationName": "uiautomator2","appPackage": "com.example.app","appActivity": ".MainActivity"
}
driver = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps)# 执行登录操作
driver.find_element_by_id("username_input").send_keys("test")
driver.find_element_by_id("password_input").send_keys("wrong_password")
driver.find_element_by_id("login_btn").click()# 捕获Toast
try:toast_text = WebDriverWait(driver, 5).until(lambda x: x.find_element(AppiumBy.XPATH, "//*[contains(@text, '密码错误')]")).textprint("捕获到的Toast内容:", toast_text)
except TimeoutException:print("未找到Toast提示")

输出结果:

捕获到的Toast内容:账号或密码错误

六、常见问题与解决

1.Toast无法定位
检查automationName是否为uiautomator2。确保Appium版本≥1.6.3,建议使用1.20+。

2.中文乱码
在Python脚本开头添加# coding=utf-8。

3.Toast显示时间过短
缩短poll_frequency(如0.1秒),增加检测频率。

七、扩展:封装Toast判断函数

def get_toast_text(driver, timeout=5):try:toast_loc = (AppiumBy.XPATH, "//*[@class='android.widget.Toast']")toast_element = WebDriverWait(driver, timeout).until(EC.presence_of_element_located(toast_loc))return toast_element.textexcept:return None

调用示例:

toast = get_toast_text(driver)
if toast == "登录成功":print("测试通过")
```[6](@ref)[7](@ref)
http://www.dtcms.com/wzjs/495937.html

相关文章:

  • 嘉兴高档网站建设近期网络舆情事件热点分析
  • 做外贸的几个网站重庆seo海洋qq
  • 怎么用linux做网站服务器吗山东搜索引擎优化
  • 学院网站建设作用网站维护需要多长时间
  • 威海团购网站建设网站搭建费用
  • 汽车网址大全图片seo职位具体做什么
  • wordpress 安装502广东网络优化推广
  • web个人网站设计方案河南网站建设公司哪家好
  • 外贸自建站平台怎么选seo咨询推广
  • 家政网站模板线下推广宣传方式有哪些
  • 自己做公司网站需要什么优秀营销软文100篇
  • 关于网站建设的求职意向手机优化
  • 徐州网站建设网站制作济南seo顾问
  • 在招聘网站做销售业务推广方式
  • 租赁网站空间更换怎么做西安百度推广怎么做
  • 赤峰住房城乡建设部网站西安百度推广联系方式
  • 羽毛球赛事在哪看百度手机seo
  • 网站备案 复查百度非企推广开户
  • 鄄城菏泽网站建设seo双标题软件
  • 我想建一个做私彩的网站超级软文网
  • 武汉google网站制作营销型网站设计
  • 修改网站后台地址滨州seo招聘
  • 英文网站如何做关键词外贸做网站公司哪家好
  • 中国建设很行河北省分行合作网站seo常用的工具
  • 网站介绍视频怎么做的推广普通话的意义是什么
  • wordpress4 sqlite网站seo排名优化方法
  • 青岛手机网站制作做网络推广一般是什么专业
  • wordpress文章关键字替换泰安网站seo
  • 网站建设明细报价单网络推广软文怎么写
  • 手机怎么做3d短视频网站灰色关键词排名代做