python+appium自动化测试-元素等待

本文详细介绍了在使用Python和Appium进行自动化测试时的五种元素等待方法:隐式等待(implicity_wait)、强制等待(sleep)、wait_activity、等待元素出现以及WebDriverWait。通过具体案例,如微博和QQ的应用,阐述了每种方法的使用场景和操作方式,帮助读者更好地理解和应用这些等待策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该篇文章主要用于整理的是在执行自动化测试过程中的几种元素等待方法

  • implicity_wait()
  • sleep()
  • wait_activity()
  • 等待某元素出现后,再执行操作
  • WebDriverWait()

一、implicity_wait()-以下案例为微博

隐式等待:属于全局的等待,它不是针对某一个元素,而是针对当前session(即当前driver对象的生命周期)的全部元素,所以只需要在构造driver对象时设置一次即可。

如果不发送此命令,则驱动程序应默认为隐式等待0s

appium官方文档的隐式等待

self.driver.implicitly_wait(5) # waits 5 seconds

隐式等待一般与启动app的设置中,存放位置如下图所示:

在这里插入图片描述

二、sleep()

强制等待:sleep()方法是python的time模块提供,所以需要导入:from time import sleep;当执行了sleep()方法后,会强制休眠,休眠的时间可以在括号中自己设置,括号里面的数字以秒为单位,例如休眠1秒:sleep(1),括号中也能用小数点表示,例如休眠1.5秒:sleep(1.5)

from time import sleep
# 强制休眠1秒
sleep(1)
# 强制休眠1.5秒
sleep(1.5)

三、wait_activity() -以下案例为QQ

wait_activity():判断需要执行的按钮所在页面的activity出现后,再对页面执行操作

#登录按钮所在的activity:com.tencent.mobileqq//.activity.LoginActivity
# 设置等待100S,每隔2S刷新一次,等待登录按钮所在的activity页面出现,current_activity指的是当前的activity页面
driver.wait_activity(".activity.LoginActivity",100,interval=2)
# 当前页面的activity
AC = driver.current_activity
print(AC)

**注:**如何获取当前页面的activity:cmd命令中输入:adb shell dumpsys activity activities

下图中红色框内的即表示当前页面的activity,下图为微博实例,所以当前页面的activity 为:com.sina.weibo/.SplashActivity

代码中做判断时可以简写为".SplashActivity"

Python结合Appium进行自动化测试扫码登录是一种常见的移动应用测试方法,特别是在需要用户登录的场景下。以下是一个基本的实现步骤: 1. **安装必要的库和工具**: - 安装Python环境。 - 安装Appium Server。 - 安装Appium Python客户端库:`pip install Appium-Python-Client`。 2. **配置Appium Server**: - 启动Appium Server,可以通过命令行输入`appium`来启动。 3. **编写Python脚本**: - 导入必要的库。 - 配置Appium的Desired Capabilities。 - 初始化Appium的WebDriver。 - 定位扫码登录的二维码元素并截图。 - 读取二维码并使用其他工具进行扫描。 - 验证登录是否成功。 以下是一个简单的示例代码: ```python from appium import webdriver import time # 配置Desired Capabilities desired_caps = { 'platformName': 'Android', 'deviceName': 'YourDeviceName', 'appPackage': 'com.example.yourapp', 'appActivity': 'com.example.yourapp.MainActivity', 'automationName': 'UiAutomator2' } # 初始化WebDriver driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 等待应用启动 time.sleep(5) # 定位扫码登录的二维码元素 qr_code_element = driver.find_element_by_id('com.example.yourapp:id/qr_code') # 截图并保存 qr_code_element.screenshot('qr_code.png') # 使用其他工具读取二维码并处理 # 这里可以使用Python的qrcode库或其他工具进行二维码扫描 # 验证登录是否成功 # 这里可以使用断言或其他方法进行验证 # 关闭WebDriver driver.quit() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值