IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Robot Framework And Appium -> 正文阅读

[移动开发]Robot Framework And Appium

Robot Framework And Appium

官方文档:

定位元素

比如Android界面上有一个TEST按钮,在Appium中它显示的属性如下:

01
可以通过如下的方式来点击这个按钮

通过id

Click Element    com.example.appiumlibrarytest:id/button1

通过class

Click Element    //android.widget.Button[@text="TEST"]
Click Element    //android.widget.Button[contains(@text, "TEST")]

或者通过resource-id,如

Click Element    //android.widget.Button[contains(@resource-id, 'button1')]
Click Element    //android.widget.Button[@resource-id='com.example.appiumlibrarytest:id/button1' and @text='TEST']

SeekBar拖动

可以参考:

主要代码如下,也很好理解,例子是上下滑动的,可以很方便的修改为左右滑动

Swipe Up
  ${element_size}=    Get Element Size    id=sample_content_fragment
  ${element_location}=    Get Element Location    id=sample_content_fragment
  ${start_x}=         Evaluate      ${element_location['x']} + (${element_size['width']} * 0.5)
  ${start_y}=         Evaluate      ${element_location['y']} + (${element_size['height']} * 0.7)
  ${end_x}=           Evaluate      ${element_location['x']} + (${element_size['width']} * 0.5)
  ${end_y}=           Evaluate      ${element_location['y']} + (${element_size['height']} * 0.3)
  Swipe               ${start_x}    ${start_y}  ${end_x}  ${end_y}  500
  Sleep  1

Swipe Down
  ${element_size}=    Get Element Size    id=sample_content_fragment
  ${element_location}=    Get Element Location    id=sample_content_fragment
  ${start_x}=         Evaluate      ${element_location['x']} + (${element_size['width']} * 0.5)
  ${start_y}=         Evaluate      ${element_location['y']} + (${element_size['height']} * 0.3)
  ${end_x}=           Evaluate      ${element_location['x']} + (${element_size['width']} * 0.5)
  ${end_y}=           Evaluate      ${element_location['y']} + (${element_size['height']} * 0.7)
  Swipe               ${start_x}    ${start_y}  ${end_x}  ${end_y}  500
  Sleep  1

获取Toast

AppiumLibrary没有获取Toast的keyword,需要自己定义
参考:

Mac电脑上,_element.py文件的位置位于/usr/local/lib/python3.9/site-packages/AppiumLibrary/keywords/_element.py
位置可能各有区别,可以直接搜索AppiumLibrary

# coding=utf-8
# Author: Allan

# 导入三个库文件
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions

    # 获取 Toast 信息
    def find_toast(self, text):
        '''Find Android Toast
        Arguments:
        | text  | Toast信息 |
        Examples:
        | Find Toast | ${text} |
        '''
        application = self._current_application()
        try:
            toast_locator = ("xpath", ".//*[contains(@text,'%s')]" %text)
            WebDriverWait(application, 6, 0.5).until(expected_conditions.presence_of_element_located(toast_locator))
            self._info("Toast has been found: %s." %text)
        except:
            raise AssertionError("Not found toast: %s." %text)

可以稍微修改下

    # Public, element lookups
    def find_toast(self, text=None, timeout=10, poll_frequency=0.01):
        """Find Android Toast
        :param text: toast text
        :param timeout: Number of seconds before timing out, By default, it is 10 second.
        :param poll_frequency: sleep interval between calls, By default, it is 0.01 second.
        :return: toast
        """
        application = self._current_application()
        if text:
            toast_loc = ("//*[contains(@text, '%s')]" % text)
        else:
            toast_loc = "//*[@class='android.widget.Toast']"
        try:
            WebDriverWait(application, timeout, poll_frequency).until(
                expected_conditions.presence_of_element_located(('xpath', toast_loc)))
            toast_elm = application.find_element_by_xpath(toast_loc)
            return toast_elm.text
        except:
            # raise AssertionError("Not found toast: %s." %text)
            return 'NONE'

另一种方式,作为参考,我自己没有试验过:

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-10 10:58:28  更:2021-09-10 10:58:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:52:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码