appium之滑动屏幕+判断元素是否存在+截图+toast定位

appium之滑动屏幕+判断元素是否存在+截图+toast定位

基础代码

import time

from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait

server = 'http://localhost:4723/wd/hub'
caps = {
   
   
    "platformName": "Android",
    "deviceName": "JPF4C19123011893",
    "platformVersion": "10.0",
    "appPackage": "com.czb.webczbdemo",
    "appActivity": "com.czb.webczbdemo.MainActivity",
    "automationName": "uiautomator2",
    "noReset": "true",
    "unicodeKeyboard": "true",
     "resetKeyboard": "true"
}
driver = webdriver.Remote(server, caps)
wait = WebDriverWait(driver, 30)

#通过find_element_by_id来获取元素
navigation_button = driver.find_element_by_id("com.czb.webczbdemo:id/webNavigation")
#点击元素
navigation_button.click()
#等待3秒
time.sleep(3)
#通过find_element_by_class_name来定位元素
edit_text = driver.find_element_by_class_name("android.widget.EditText")
#将元素中的内容清空
edit_text.clear()
#等待3秒
time.sleep(3)
#将新的地址放到输入框中
edit_text.send_keys("https://test-open.czb365.com/redirection/todo/?platformType=92611011&platformCode=18610899775")
#通过find_element_by_class_name来定位元素
commit_button = driver.find_element_by_class_name("android.widget.Button")
#点击前往按钮
commit_button.click()
#通过find_elements来查找有相同定位信息的一组元素
o
### Appium 3.0 Python Android自动化测试配置和使用指南 Appium 是一个开源的自动化测试工具,支持对 Android 和 iOS 应用进行自动化测试。它基于 WebDriver 协议,能够与多种编程语言集成,包括 Python。Appium 3.0 作为其较新版本,引入了对 Mobile JSON Wire Protocol Specification draft 的支持,使得与 Python 的集成更加灵活和强大。 #### 环境准备 在开始使用 Appium 3.0 进行 Android 自动化测试之前,需要确保以下环境配置完成: 1. **安装 Python** 确保系统中已安装 Python(推荐版本为 Python 3.x)。 2. **安装 Appium-Python-Client** 使用 pip 安装 Appium 的 Python 客户端库: ```bash pip install Appium-Python-Client ``` 3. **安装 Appium Server** 可以通过 npm 安装 Appium 服务器: ```bash npm install -g appium ``` 4. **安装 Android SDK** 下载并安装 Android SDK,确保 `adb` 工具可用,并且设备可以通过 USB 连接并被识别。 5. **连接 Android 设备** 使用 USB 连接 Android 设备,并启用开发者选项中的 USB 调试模式。 #### Appium 3.0 配置 在 Python 脚本中,需要配置 Appium 的 Desired Capabilities 来指定测试环境的参数。以下是一个示例配置: ```python from appium import webdriver desired_caps = { 'platformName': 'Android', 'platformVersion': '11', # 根据实际设备版本修改 'deviceName': 'emulator-5554', # 设备名称 'appPackage': 'cn.yaomaitong.app.daily', # 被测试应用的包名 'appActivity': 'cn.yaomaitong.app.ui.portal.WelcomeActivity', # 启动的Activity 'automationName': 'UiAutomator2' # 使用 UiAutomator2 作为自动化引擎 } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) ``` #### 自动化测试脚本编写 在成功启动 Appium 会话后,可以使用 WebDriver 提供的 API 进行元素定位、点击、滑动等操作。以下是一个简单的测试脚本示例: ```python # 等待某个元素出现 element = driver.find_element_by_id("element_id") # 点击元素 element.click() # 输入文本 text_field = driver.find_element_by_id("text_field_id") text_field.send_keys("Hello Appium") # 滑动屏幕 driver.swipe(start_x=500, start_y=1500, end_x=500, end_y=500, duration=800) # 关闭应用 driver.quit() ``` #### 自动化测试的优势 自动化测试在软件开发过程中具有显著的优势。首先,它减少了手动测试的工作量,尤其是在回归测试中,能够快速验证代码更改是否引入了新的缺陷。其次,自动化测试的准确性高于手动测试,因为它不会因人为因素而产生疏漏。此外,自动化测试可以频繁运行,支持每日构建、冒烟测试等实践,帮助团队在早期发现和修复问题,从而提高软件质量。 #### 注意事项 - **测试环境一致性**:确保每次测试的环境一致,以避免因环境差异导致的测试失败。 - **元素定位策略**:合理选择元素定位方式(如 ID、XPath、Class Name 等),确保测试脚本的稳定性。 - **异常处理**:在脚本中加入异常处理逻辑,防止因意外情况导致测试中断。 - **日志记录**:记录详细的测试日志,便于后续分析和调试。 #### 回归测试与测试规划 在进行自动化测试时,回归测试是不可或缺的一部分。每次对产品的某个区域进行更改后,必须运行相同的测试用例,以确保没有引入新的缺陷。随着产品的成熟,可以逐步添加新的测试用例,但旧的测试用例也应保留,以确保测试的全面性。 测试规划是有效测试的关键。从项目一开始就进行测试规划,将测试与设计、编码置于同等重要的地位,这样才能保证为测试分配足够的时间,并确保测试过程的高质量。测试规划也是使测试过程可重复的要素,因为不可重复的测试过程难以改进。 #### 自动化测试的挑战 尽管自动化测试有许多优势,但也存在一些挑战。例如,在新的、不稳定的技术环境中,自动化测试可能需要频繁调整,以适应环境的变化。此外,编写高质量的测试脚本需要一定的技术能力,测试人员需要熟悉 Appium 的 API 以及 Android 应用的结构。 #### 总结 通过 Appium 3.0 与 Python 的结合,开发者可以高效地进行 Android 应用的自动化测试。合理的测试规划、稳定的测试环境、以及高效的测试脚本编写,都是确保测试成功的必要条件。自动化测试不仅提高了测试的效率和准确性,还为大规模代码更改提供了安全网,增加了快速检测到修改过程中引入的缺陷的机会。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值