Appium自动化(9):Appium常用操作之元素操作

前置条件:

先配置Desired Capabilities等配置信息

代码示例:

import time
from appium import webdriver  # 导入appium 驱动包
from appium.webdriver.webdriver import By   # 导入appium 定位的方法包
des = {
    'platformName':'Android',
    'platformVersion':'6.0.1',  # 填写android虚拟机/真机的系统版本号
    'deviceName':'MuMu',      # 填写安卓虚拟机/真机的设备名称
    'appPackage':'com.android.settings',    # 填写被测app包名
    'appActivity':'.Settings',    # 填写被测app的入口
    'udid':'127.0.0.1:7555',    # 填写通过命令行 adb devices 查看到的udid
    'noReset':True,               # 是否重置APP
    'unicodeKeyboard':True,       # 是否支持中文输入
    'resetKeyboard':True,         # 是否支持重置键盘
    'newCommandTimeout':30        # 30秒没发送新命令就断开连接
       }

driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',des)

基本元素操作

1、click(self):点击元素

# 点击元素
time.sleep(3)
driver.find_element(By.XPATH,'//android.widget.TextView[@content-desc="搜索设置"]').click()

2、send_keys(self,*value):在元素中输入文本内容

# 在元素中输入文本信息
time.sleep(3)
element = driver.find_element(By.XPATH,'//android.widget.EditText[@resource-id="android:id/search_src_text"]')
element.send_keys('你好')

3、clear(self):在元素中清除文本内容

# 在元素中清除文本内容
time.sleep(3)
element = driver.find_element(By.XPATH,'//android.widget.EditText[@resource-id="android:id/search_src_text"]').send_keys('happy')
element.clear()

4、submit(self):提交表单操作,在H5和webview中可使用

待更新!!!


获取元素属性操作

1、text:获取元素属性中的text值

2、tag_name:获取元素的标签名(原生应用无标签名,所以为None)

3、get_attribute(self,*name):根据属性名获取元素属性,属性名填写错误会报错

4、size:获取元素的宽和高,返回字典{'height':高,'width':宽}

5、location:获取元素左上角的坐标,返回字典{'x':坐标,'y':坐标}

6、rect:元素的大小和位置组合字典,返回字典{'height':高,'width':宽,'x':坐标,'y':坐标}

备注:还有部分方法如screenshot(self,*filename)等用在H5和webview端,由于appium中api没有区分原生和H5,所以当在代码中报错Methodhasnotyetbeenimplemented时,可以确认该方法在另外一端使用

time.sleep(3)
element = driver.find_element(By.XPATH,'//android.widget.EditText[@resource-id="android:id/search_src_text"]').send_keys('happy')
# 获取元素属性中的text值
print(element.text)
# 获取元素的标签名
print(element.tag_name)
# 根据属性名获取元素属性
print(element.get_attribute('bounds'))
# 获取元素的宽和高,返回字典
print(element.size)
# 获取元素左上角的坐标,返回字典
print(element.location)
# 元素的大小和位置组合字典,返回字典 
print(element.rect)

执行结果:

1 happy
2 None
3 [150,79][768,163]
4 {'height': 84, 'width': 618}
5 {'x': 150, 'y': 79}
6 {'height': 84, 'width': 618, 'x': 150, 'y': 79}

元素判断的操作

1、is_displayed(self):此元素是否可见。隐藏元素和被控件挡住无法操作的元素(仅限H5和webview支持)返回布尔值;

# 该元素是否可见
time.sleep(5)
is_d = driver.find_element(By.XPATH,'//android.widget.EditText[@resource-id="com.wondertek.paper:id/input_phone"]').is_displayed()
print(is_d)

2、is_enabled(self):此元素是否可用。元素灰色和无法操作的元素(仅限H5和webview支持)返回布尔值;

# 该元素是否可用
time.sleep(5)
is_e = driver.find_element(By.XPATH,'//android.widget.Button[@text="登录"]').is_enabled()
print(is_e)

3、is_selected(self):此元素是否被选中。适用于单选框、复选框等类型的元素(仅限H5和webview支持)返回布尔值;

# 此元素是否被选中
time.sleep(5)
is_s = driver.find_element_by_xpath('//android.widget.CheckBox[@resource-id="com.wondertek.paper:id/checkbox_agreement"]').is_selected()
print(is_s)

4、对于原生应用来讲,元素断言可以通过获取displayed、enabled、selected属性值,然后通过条件语句if来进行判断;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值