揭秘高级控件技巧:让您的App与众不同君子兰

这篇具有很好参考价值的文章主要介绍了揭秘高级控件技巧:让您的App与众不同君子兰。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

APP 的控件元素不仅涵盖了基础用户界面操作,还包括用户与应用程序中更复杂、功能丰富的空间之间的互动。这种交互远不止于简单的按钮或输入框。通过借助 Appium 的 Actions,能够完成对应用程序进行手势识别的交互。这意味着可以通过各种手势,如滑动、缩放、长按等,实现更灵活、直观的用户体验。这种高级交互使得应用程序更具交互性和吸引力,为用户提供了更深入参与应用功能的途径。

Actions 介绍

Actions 是 Appium 中的关键类,专门设计用于执行各种手势和交互操作,包括但不限于点击、滑动、长按等。这个类的存在使得在移动端应用程序的自动化测试中,通过 Appium 可以轻松地控制设备活模拟器执行多样化的手势操作,通过 Actions ,测试人员可以模拟用户真实的操作行为,确保应用在不同交互场景下的稳定性和可靠性。这一功能对于移动应用的全面测试和质量保证至关重要。

ActionChains 和 Actions 区别

ActionChains 是 Selenium WebDriver 中的一个类,可用于执行一系列的操作,如鼠标悬停、拖放、按下键盘等。

而 Actions 是 Appium 中的一个类,用于执行手势和交互操作,如点击、滑动、长按等。

尽管两者的名称相似,但它们是针对不同的自动化测试环境而设计的。

ActionChains 适用于网页自动化测试,通过 Selenium WebDriver 控制浏览器执行各种交互操作,并提供了一系列方法来模拟用户的行为。

而 Actions 则适用于移动端应用程序的自动化测试,通过 Appium 控制设备或模拟器执行各种手势操作。

除了适用于不同的自动化测试环境之外, ActionChains 和 Actions 的用法和语法也略有不同。在 Selenium WebDriver 中使用 ActionChains 时,可以通过链式调用方法来执行一系列操作,并使用 perform() 方法来触发操作的执行。而在 Appium 中使用 Actions 时,需要创建 TouchAction 对象,并使用其提供的方法来执行手势操作,并使用 perform() 方法来触发手势的执行。

Actions 用法

在使用 ActionChains 进行用户交互自动化时,首先需要导入 ActionChains 类以及其他相关模块,然后定义一个 ActionChains 实例,并将 driver 传入。之后,可以通过定义输入源和具体的动作来实现各种用户交互操作。

  • 导入 ActionChains 类及其他模块

  • 定义 ActionChains 实例 'actions',传入 driver

  • 定义输入源

  • 定义动作

  • 执行动作

滑动解锁示例

  • 安装手势密码锁 app(TouchAction.apk)

  • 打开应用

  • 点击【设置手势】

  • 完成手势操作(如图)

  • 揭秘高级控件技巧:让您的App与众不同君子兰,Python全栈开发,microsoft,测试工具,职场和发展,服务器,面试,测试用例,压力测试

  • 实现手势滑动时,通常需要结合坐标,并可通过设置设备的输入选项,从界面中找到具体的坐标点。

    手势滑动路径如下图所示:

  • 揭秘高级控件技巧:让您的App与众不同君子兰,Python全栈开发,microsoft,测试工具,职场和发展,服务器,面试,测试用例,压力测试

Python 版本


class TestActionChains:

    def setup_class(self):
        # 设置启动参数
        caps = {
            "platformName": "Android",
            "appium:appPackage": "cn.kmob.screenfingermovelock",
            "appium:appActivity": "com.samsung.ui.FlashActivity",
            "appium:noReset": True,
            "appium:shouldTerminateApp": True,
        }
        # 初始化 driver
        self.driver = webdriver.Remote('http://localhost:4723', options=UiAutomator2Options().load_capabilities(caps))
        # 设置隐式等待
        self.driver.implicitly_wait(15)

    def teartdown_class(self):
        # 退出应用程序
        self.driver.quit()

    def test_slide_to_unlock(self):
        # 点击设置手势
        self.driver.find_element(by=AppiumBy.ID, value="cn.kmob.screenfingermovelock:id/patternTxt").click()
        print(self.driver.get_window_size())
        # 定义ActionChains实例
        actions = ActionChains(self.driver)
        # 定义输入源
        actions.w3c_actions = ActionBuilder(self.driver, mouse=PointerInput(interaction.POINTER_TOUCH, "touch"))
        # 定义动作 pointer_down按下 pause暂停 release释放
        # 需要实现3个点之间的滑动,A->B 水平滑动 B—>C 竖直滑动
        bounds = self.driver.find_element(AppiumBy.ID, 'cn.kmob.screenfingermovelock:id/patternView').get_attribute(
            'bounds')
        actions.w3c_actions.pointer_action.move_to_location(204, 377)
        actions.w3c_actions.pointer_action.pointer_down()
        actions.w3c_actions.pointer_action.move_to_location(930, 373)
        # 停顿0.5s 模拟在两个点之间进行拖拽操作
        actions.w3c_actions.pointer_action.pause(0.5)
        actions.w3c_actions.pointer_action.move_to_location(846, 1150)
        actions.w3c_actions.pointer_action.pause(0.5)
        actions.w3c_actions.pointer_action.release()
        # 执行操作
        actions.perform()
                # 获取【继续】按钮的 clickable 属性值
        result = self.driver.find_element(AppiumBy.ID, "cn.kmob.screenfingermovelock:id/btnTwo").get_attribute(
            "clickable")
        # 断言【继续按钮】可点击
        assert result == "true"

 文章来源地址https://www.toymoban.com/news/detail-847947.html

总结

  • Actions 用法

  • 滑动解锁示例

  • 推荐学习

    全栈开发与测试定向培养班内容全面升级。4 个月 30+ 项目实战强化训练,资深测试架构师、开源项目作者亲授 BAT 大厂前沿最佳实践,带你一站式掌握测试开发必备核心技能(对标阿里P6+)!新增小班私教、1v1私教服务,让同学们在学技术的同时,软技能也同步得到提升。直推 BAT 名企测试经理,模拟面试+面试复盘跳槽无忧

  • 揭秘高级控件技巧:让您的App与众不同君子兰,Python全栈开发,microsoft,测试工具,职场和发展,服务器,面试,测试用例,压力测试

推荐视频学习

7天软件测试快速入门教程

新手专区--软件测试精品教程合集

web自动化测试初级实战快速入门

web自动化测试初级实战快速入门2

app功能测试实战入门

App自动化测试初级入门教程

接口测试初级入门

接口响应断言_哔哩哔哩_bilibili新手专区--接口测试入门到实战精通

接口自动化测试训练营

提升专区--测试开发技能图谱

提升专区--测试开发精品公开课合集

postman接口自动化测试实战入门教程

2024最新Python3.1x软件测试开发必备语法基础讲解

2024最新Python3.1x软件测试开发必备语法基础讲解2

Python Java测试开发/自动化测试/性能测试/精准测试/测试左移/测试右移/人工智能测试

软件测试公开课合集

大厂面试真题解析

Pytest 测试框架与 Allure2

JMeter实时性能监控平台

 

到了这里,关于揭秘高级控件技巧:让您的App与众不同君子兰的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 5款冷门小工具,让你的电脑变得与众不同

    每个人的电脑中都会安装很多软件,可能还保留着很多不为人知的冷门软件。不过虽然冷门,但绝不意味着低能,相反很多冷门软件的功能十分出色。闲话少说,接下来我就给大家推荐5款冷门小工具,看一看有没有你喜欢的。 TileIconifier是一款用于自定义Windows 10的磁贴图标的

    2024年02月07日
    浏览(28)
  • 创意网页模板免费下载,让你的网站与众不同!

    今天给大家带来的网站模板素材,网站类型丰富,包含户外旅行、餐饮、个人网站等等,可以学习和参考其中的布局排版和配色。 ⬇⬇⬇点击获取更多设计资源 https://js.design/community?category=designsource=csdnplan=bbqcsdn772   1、设计公司工作室 相信大家都希望拥有属于自己的个人网

    2024年02月16日
    浏览(85)
  • 小程序自定义tabbar—让你的小程序与众不同

    本篇文章将详细介绍微信小程序自定义tabbar的设置方法和注意事项,希望能够帮助广大开发者更好地开发和设计自己的微信小程序,实现更加个性化和独特的用户体验。 目录 前言 一、自定义tabbar设置的重要性 二、怎么设置自定义tabbar呢 第一步,配置信息 第二步,添加tab

    2024年02月16日
    浏览(40)
  • 如何将Django中的管理端网站变得好看又与众不同

    在Django中,管理页面是管理数据的重要部分。通过管理页面可以轻松地添加、编辑和删除数据。然而,在默认情况下,Django的管理页面并不是最漂亮的。有些插件可以显著提高管理页面的外观和功能。本文将介绍一些Django管理页面好看的插件。 django-jet django-jet是一个非常强大

    2024年02月11日
    浏览(32)
  • Unity学会使用高级功能Attributes(特性),让您的程序如虎添翼

    在Unity中,Attributes用于增强类、字段、方法等程序元素的行为或元数据信息,这些信息可以在编辑器界面中或者通过代码反射来访问和使用。以下是如何在Unity中使用内置及自定义Attributes的示例说明: 此Attribute允许将私有变量显示在Unity Inspector中,尽管它不是public。 使Insp

    2024年02月01日
    浏览(33)
  • 8年前端与众不同的Vue实战系列,助你成为前端顶级开发者

    目录 一、写这个Vue实战系列专栏的初衷 1. 帮朋友做推荐 2. 市面上卖源码的多,讲实战项目过程的少 3. 想到了自己刚毕业的时候 二、 本专栏的优势  1. 需求的适应性强 2. 技术主流  三、 读完本专栏,你可以得到什么 1. 帮朋友做推荐 我记得最初的时候,我也只是单纯的分享

    2024年02月02日
    浏览(42)
  • 掌握SEO关键词布局技巧:让您的网站在搜索引擎中翻云覆雨,提升排名和流量

    每个网站,如果想要去做seo,得到免费的流量,那么它就必须要做布局。 并且,对于整个网站的seo策略来说,布局是尤为重要并且不得不做的一块。 在做某件事情之前,我们需要先了解它的本质,或者说它是什么。所以大家会发现我写的大部分文章,都会

    2024年02月12日
    浏览(133)
  • Python控制流程盘点及高级用法、神秘技巧大揭秘!

    在这篇文章中我们将全面深入地介绍 Python 的控制流程,包括条件语句、循环结构和异常处理等关键部分,尤其会将列表解析、生成器、装饰器等高级用法一网打尽。此外,我还将分享一些独特的见解和研究发现,希望能给你带来新的启发。文章的结尾,我们将有一个 \\\"One M

    2024年02月10日
    浏览(31)
  • 打破无声世界:让您的网站会说话

    导语:在当今的互联网世界,技术创新日新月异,为广大开发者提供了无数便捷的工具。本文将为您介绍前端文本语音API,这一神奇的技术能够实现文字到语音的转换,为您的项目增添更多可能性。同时,我们还将为您提供10个吸引人的创意标题,让您在第一时间抓住用户的

    2024年02月03日
    浏览(37)
  • PDF校对:让您的文件无瑕疵

    无论您是企业家、学生、教育者还是作家,我们都知道,提交或发布一个充满错误的PDF文件可能会给您的声誉或品牌带来严重损害。这就是为什么PDF校对如此关键的原因。现在,让我们深入了解PDF校对的重要性,以及如何确保您的文件尽可能完美。 什么是PDF校对? PDF校对是

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包