首页 技术 正文
技术 2022年11月18日
0 收藏 393 点赞 5,039 浏览 1591 个字

一、应用切换

  应用切换的方法很简单,直接调用driver.start_activity()方法,传入app_package和app_activity参数,示例代码如下:

from appium import webdriverdesired_caps = {}# 配置平台信息
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '8.0'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['noReset'] = True# 获取应用的包名及启动类名
desired_caps['appPackage'] = 'com.tencent.mm'
desired_caps['appActivity'] = 'com.tencent.mm.ui.LauncherUI'# 与appium server建立连接
driver = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub',
desired_capabilities=desired_caps)driver.start_activity(app_package='com.autonavi.minimap',
app_activity='com.autonavi.map.activity.SplashActivity')

  代码执行结果演示:

appium应用切换以及toast弹出框处理

二、toast弹出框处理

1.toast简介

  toast是android中用来显示信息的一种机制,和Dialog对话框不一样的是toast没有焦点,而且toast显示的时间也有限,过很短的时间就会自动消失,并且也不能被点击。

  在appium中,如果想要定位到toast信息,通过appium自带的inspector或者SDK里面的uiautomatorviewer工具发现是定位不到的,没有对应的属性信息,不过在appium v1.6.3及之后的版本支持toast获取。

  appium应用切换以及toast弹出框处理

2.toast获取

获取toast信息的注意事项:

  • UIAutomator2只支持android版本5.0及以上
  • appium server版本1.6.3及以上
  • 需安装jdk1.8 64位及以上,并配置环境变量JAVA_HOME和path
  • 启动参数需要指定:desired_caps[‘automationName’] = ‘UiAutomator2’
desired_caps = {}
# 设置UiAutomator2支持toast信息获取
desired_caps['automationName'] = 'UiAutomator2'

xpath表达式:

xpath = ‘//*[contains(@text, “文本内容”)]’

等待:

使用presence_of_element_located,而不能使用visibility_of_element_located,在这里它对toast的可见处理并不支持,会直接抛出命令错误无法执行

# 获取对应的toast信息
xpath_locator = (MobileBy.XPATH, '//*[contains(@text, "{}")]'.format('手机号码或密码不能为空'))try:
WebDriverWait(driver, 10, 0.01).until(EC.presence_of_element_located(xpath_locator)) # 因为toast信息消失的很快,所以频率需要指定,这里设定为0.01
print("已获取到toast信息:{}".format(driver.find_element(*xpath_locator).text))
except:
print("未获取到toast信息!!!")
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,496
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,909
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,743
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,496
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,134
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,298