移动端自动化测试03

APP元素获取信息操作api
1.点击元素
发送数据到输入框
方法:send_keys(value) #value:需要发送到输入框内的文本
1.打开设置
2.点击搜索按钮
3.输入内容abc

# 点击搜索按钮
        driver.find_element_by_id("com.android.settings:id/search").click()
# 定位到输入框并输入abc
        driver.find_element_by_id("android:id/search_src_text").send_keys("abc")
重点:
        大家可以将输入的abc 改成 输入中文,得到的结果:输入框无任何值输入且程序不会抱错

解决输入中文问题:

  1.server 启动参数增加两个参数配置
        desired_caps['unicodeKeyboard'] = True
        desired_caps['resetKeyboard'] = True

    2.再次运行会发现运行成功
        # 点击搜索按钮
        driver.find_element_by_id("com.android.settings:id/search").click()
        # 定位到输入框并输入abc
        driver.find_element_by_id("android:id/search_src_text").send_keys("哈哈")

清空输入框内容
方法:clear()
1.打开设置
2.点击搜索按钮
3.输入内容abc
4.删除已输入abc

 # 点击搜索按钮
      driver.find_element_by_id("com.android.settings:id/search").click()
      # 定位到输入框并输入abc
      input_text = driver.find_element_by_id("android:id/search_src_text")
      # 输入abc
      input_text.send_keys("abc")
      time.sleep(1)
      # 删除abc
      input_text.clear()

获取元素的文本内容
方法:text()
1.进入设置
2.获取所有元素class属性为“android.widget.TextView”的文本内容

 text_vlaue = driver.find_elements_by_class_name("android.widget.TextView")
      for i in text_vlaue:
          print(i.text)

获取元素的属性值

方法: get_attribute(value) # value:元素的属性
  ⚠️ value='name' 返回content-desc / text属性值
  ⚠️ value='text' 返回text的属性值
  ⚠️ value='className' 返回 class属性值,只有 API=>18 才能支持
  ⚠️ value='resourceId' 返回 resource-id属性值,只有 API=>18 才能支持

1.进入设置
2.获取搜索按钮的content-desc属性值

  # 定位到搜索按钮
      get_value = driver.find_element_by_id("com.android.settings:id/search")
      print(get_value.get_attribute("name"))

获取元素在屏幕上的坐标
方法:location
1.进入设置页面
2.获取搜索按钮在屏幕的坐标位置

# 定位到搜索按钮
      get_value = driver.find_element_by_id("com.android.settings:id/search").location
      # 打印搜索按钮在屏幕上的坐标
      print(get_value)

获取app包名和启动名
获取包名方法:current_package
获取启动名:current_activity

 print(driver.current_package)
   print(driver.current_activity)

adb查看当前软件运行的包名和activity
在这里插入图片描述

app元素事件操作api

swipe滑动事件
⚠️从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动

方法:swipe(start_x, start_y, end_x, end_y, duration=None)
参数:
1.start_x:起点X轴坐标
2.start_y:起点Y轴坐标
3.end_x: 终点X轴坐标
4.end_y,: 终点Y轴坐标
5.duration: 滑动这个操作一共持续的时间长度,单位:ms

代码实现:

#滑动没有持续时间
driver.swipe(188,659,148,248)
#滑动有持续时间
driver.swipe(188,659,148,248,5000)

scroll滑动事件
从一个元素滑动到另一个元素,直到页面自动停止
方法:scroll(origin_el, destination_el)
参数:
1.origin_el:滑动开始的元素
2.destination_el:滑动结束的元素
代码实现:

 # 定位到存储菜单栏
  el1 = driver.find_element_by_xpath("//*[contains(@text,'存储')]")
  # 定位到WLAN菜单栏
  el2 = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
  # 执行滑动操作
  driver.scroll(el1,el2)

drag拖拽事件
⚠️ 从一个元素滑动到另一个元素,第二个元素替代第一个元素原本屏幕上的位置
方法:drag_and_drop(origin_el, destination_el)
参数:
1.origin_el:滑动开始的元素
2.destination_el:滑动结束的元素
代码实现:

  # 定位到存储菜单栏
      el1 = driver.find_element_by_xpath("//*[contains(@text,'存储')]")
      # 定位到WLAN菜单栏
      el2 = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
      # 执行滑动操作
      driver.drag_and_drop(el1,el2)

应用置于后台事件
方法:background_app(seconds)
参数:seconds停留在后台的时间,单位秒

代码实现:

driver.background_app(5)

效果:
app置于后台5s后,再次展示当前页面

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值