Appium 基础使用

本文详细介绍了使用Appium进行自动化测试时的元素定位操作,包括通过id、class和xpath,以及使用WebDriverWait进行显示等待。同时,讲解了获取元素信息、输入操作、事件操作API,如滑动、拖拽、手势操作,以及手机操作API,如获取时间、网络状态、截图等,提供了一系列的代码实现示例。
摘要由CSDN通过智能技术生成

前置代码:

    from appium import webdriver
    # server 启动参数
    desired_caps = {}
    # 设备信息
    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '5.1'
    desired_caps['deviceName'] = '192.168.56.101:5555'
    # app的信息
    desired_caps['appPackage'] = 'com.android.settings'
    desired_caps['appActivity'] = '.Settings'
    # 中文处理
    desired_caps['unicodeKeyboard'] = True
    desired_caps['resetKeyboard'] = True
    # 声明driver对象
    driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

一、APP元素定位操作(id,class,xpath)

1 通过 id 定位,定位一组时为 elements

方法:find_element(s)_by_id(id_value) # id_value:为元素的id属性值    

定位单个元素:

driver.find_element_by_id("com.android.settings:id/search").click()

定位一组元素:

title = driver.find_elements_by_id("com.android.settings:id/title") # title为列表

titile[0].click()

2 通过 class 定位,定位一组时为 elements

方法:find_element(s)_by_class_name(class_value) # class_value:为元素的class属性值 

定位单个元素:

driver.find_element_by_class_name('android.widget.ImageButton').click()

定位一组元素:

title = driver.find_elements_by_class_name("android.widget.TextView") 

title[0].click

3 通过 xpath 定位,定位一组时为 elements

方法:find_element(s)_by_xpath(xpath_value) # xpath_value:为定位到元素的xpath语句 

定位单个元素:

driver.find_element_by_xpath("//*[contains(@text,'WLA')]").click()

定位一组元素:

title = driver.find_elements_by_xpath("//*[contains(@class,'widget.TextView')]")

title[0].click

android端xptah常用属性定位:

      1. id ://*[contains(@resource-id,'com.android.settings:id/search')]

      2. class ://*[contains(@class,'android.widget.ImageButton')]

      3. text ://*[contains(@text,'WLA')],模糊定位 contains(@key,value): value可以是部分值

4 WebDriverWait 显示等待操作  

方法:WebDriverWait(driver, timeout, poll_frequency).until(method)

参数:

        1.driver:手机驱动对象

        2.timeout:搜索超时时间

        3.poll_frequency:每次搜索间隔时间,默认时间为0.5s

        4.method:定位方法(匿名函数)

使用示例:
        WebDriverWait(driver, timeout, poll_frequency).until(lambda x: x.find_elements_by_id(id_value))
    解释:
        1.x传入值为:driver,所以才可以使用定位方法.
    函数运行过程:
        1.实例化WebDriverWait类,传入driver对象,之后driver对象被赋值给WebDriverWait的一个类变量:self._driver
        2.until为WebDriverWait类的方法,until传入method方法(即匿名函数),之后method方法会被传入self._driver
        3.搜索到元素后until返回定位对象,没有搜索到函数until返回超时异常错误.

代码实现:

# 导入WebDriverWait类
from selenium.webdriver.support.wait import WebDriverWait 

# 超时时间为30s,每隔1秒搜索一次元素是否存在,如果元素存在返回定位对象并退出
search_button = WebDriverWait(driver, 30, 1).until(lambda x: x.find_elements_by_id(com.android.settings:id/search))

search_button.click()

driver.quit()

二、APP元素信息信息的获取以及基本的输入操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值