App自动化测试——元素操作API

学习目标

  1. 能够使用代码点击按钮
  2. 能够使用代码对输入框输入文字
  3. 能够使用代码对输入框清空文字
  4. 能够使用代码获取元素的文本内容
  5. 能够使用代码获取元素的位置和大小
  6. 能够使用代码根据属性名获取元素的属性值

一. 元素操作API

1.1 点击元素

应用场景
需要点击某个按钮的时候使用

方法名

# 对element按钮进行点击操作
element.click()

示例

  1. 打开《设置》
  2. 点击放大镜按钮

核心代码

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

1.2 输入和清空输入框内容

应用场景
需要对输入框进行输入或清空的时候使用

方法名

# 对element输入框进行输入操作
# 参数:
# value:输入的内容
element.send_keys(value)
# 对element输入框进行输入操作
element.clear()

示例

  1. 打开《设置》
  2. 点击 ”放大镜“
  3. 输入 ”hello“
  4. 暂停 2 秒
  5. 清空所有文本内容
  6. 暂停 5 秒
  7. 输入 ”你好“

核心代码

driver.find_element_by_id("com.android.settings:id/search").click()
edit_text = driver.find_element_by_class_name("android.widget.EditText")
edit_text.send_keys("hello")
time.sleep(2)
edit_text.clear()
time.sleep(5)
edit_text.send_keys("你好")

注意点

默认输入中文无效,但不会报错,需要在 ”前置代码“ 中增加两个参数
desired_caps[‘unicodeKeyboard’] =True
desired_caps[‘resetKeyboard’] = True

1.3 获取元素的文本内容

应用场景
需要获取按钮、文本框、输入框等控件的文本内容时使用

属性名

# 获取element控件的文本内容
# 返回值:
# 控件的文本内容
element.text

示例

  1. 打开《设置》
  2. 获取所有 resource-id 为 ”com.android.settings:id/title“ 的元素,并打印其文字内容

核心代码

titles = driver.find_elements_by_id("com.android.settings:id/title")
for title in titles:
print(title.text)

1.4 获取元素的位置和大小

应用场景
需要获取元素的位置和大小的时候使用

属性名

# 获取element的位置
# 返回值:
# 字典,x为元素的x坐标,y为元素的y坐标
element.location
# 获取element的大小
# 返回值:
# 字典,width为宽度,height为告诉
element.size

示例

  1. 打开《设置》
  2. 获取 ”放大镜“ 的位置和大小

核心代码

search_button = driver.find_element_by_id("com.android.settings:id/search")
print(search_button.location)
print(search_button.size)

1.5 获取元素的属性值

应用场景
根据特征定位到元素后,使元素的属性名获取对应的属性值

方法名

# 对element进行点击操作
# 参数:
# value:要获取的属性名
# 返回值:
# 根据属性名得到的属性值
element.get_attribute(value) # value:元素的属性

示例

  1. 打开《设置》
  2. 获取所有 resource-id 为 ”com.android.settings:id/title“ 的元素
  3. 使用 get_attribute 获取这些元素的 enabled、text、content-desc、resource-id、class 的属性值

核心代码

titles = driver.find_elements_by_id("com.android.settings:id/title")
for title in titles:
print(title.get_attribute("enabled"))
print(title.get_attribute("text"))
print(title.get_attribute("name"))
print(title.get_attribute("resourceId"))
print(title.get_attribute("ClassName"))

注意点

value=‘text’ 返回text的属性值
value=‘name’ 返回content-desc / text属性值
value=‘className’ 返回 class属性值,只有 API=>18 才能支持
value=‘resourceId’ 返回 resource-id属性值,只有 API=>18 才能支持

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值