首页 > 其他分享 >遇到时间控件怎么办?不要慌,教你轻松拿下

遇到时间控件怎么办?不要慌,教你轻松拿下

时间:2024-03-28 11:24:22浏览次数:22  
标签:控件 轻松 id poco 拿下 android com click

此文章来源于项目官方公众号:“AirtestProject”
版权声明:允许转载,但转载必须保留原链接;请勿用作商业或者非法用途

1.前言

很多同学在测试场景中总会遇到各种各样的小控件需要进行测试的,包括在Android端,web端等等都有,那么今天我们来看看当我们在遇到时间控件的时候,我们应该如何进行自动化测试。

2.在Android设备上处理时间控件

在Android端上时间控件会有滚轮选择,也会有时钟模式、日历模式等等,可以看到上面是使用了滚轮选择以及时钟模式两种情况,使用poco可以识别点击,但要注意poco识别不一定适用于所有设备以及应用!

这里用到的设备是:SONY XQ-AS72 搭载Android10,其中今日头条版本为:V9.1.8 Build

参考的代码如下:

# -*- encoding=utf8 -*-
__author__ = "Airtest"

from airtest.core.api import *
auto_setup(__file__)

from poco.drivers.android.uiautomation import AndroidUiautomationPoco
poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)

#打开时钟
poco("时钟").click()

#点击新增闹钟
poco("com.android.deskclock:id/fab").click()

#直接点击自己需要输入的时间(这里poco可以直接识别即可直接点击)
poco("5").click()
poco("20").click()

#点击保存并退回桌面
poco("android:id/button1").click()

poco("com.android.systemui:id/home_button").click()

sleep(3.0)

#打开今日头条
poco("今日头条").click()

#点击我的
poco(text="我的").click()

#点击修改资料
poco("com.ss.android.article.news:id/dvg").click()

#点击修改生日
poco("com.ss.android.article.news:id/gko").click()

#滑动日期滚轮直接修改
poco("com.ss.android.article.news:id/hs_").swipe([0.0, 0.1126])
poco("com.ss.android.article.news:id/hs7").swipe([-0.0064, 0.1497])
poco("com.ss.android.article.news:id/hs3").swipe([0.0128, 0.136])

# 点击保存
poco("com.ss.android.article.news:id/cu").click()

#退回桌面
poco("com.android.systemui:id/white_cutout").click()

3.在chrome上处理时间控件

在chrome的web端关于时间日期的选择控件种类也很多,但我们解决的方式更简单粗暴了,可以直接通过JS的修改控件Value的方式去进行修改时间。

注意: 可以先通过浏览器开发者工具或者selenium窗口识别确认该时间控件的type以及时间是否为可直接修改的值

参考代码如下:

# -*- encoding=utf8 -*-

from airtest.core.api import *

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from airtest_selenium.proxy import WebChrome
from selenium.webdriver.common.by import By

driver = WebChrome()
driver.implicitly_wait(20)

# 打开网页
driver.get("https://v4.mui.com/zh/components/pickers/")

# 等待一段时间,确保页面元素加载完成
sleep(3.0)

# 定位日期时间控件并输入时间
driver.execute_script("window.scrollTo(0, 1500);")
sleep(3.0)

# 执行JavaScript来修改datetime-local控件的value属性
new_value = "2024-04-01T12:00"

driver.execute_script("document.querySelector('input[type=datetime-local]').value = '{}'".format(new_value))

# 等待一段时间,以便观察效果
sleep(3.0)

4.小结

本周推文介绍了在Android设备以及Chrome web端遇到时间控件如何处理的问题,其中不同系统处理方式不同。

1、Android设备可以选择通过Poco识别的方式进行处理

2、Chrome端可以通过直接修改控件Value的方式进行处理

但以上两种情况都需要注意的是,不同的设备以及不同的场景下,控件都会有不同的情况,poco以及js方式可能需要根据需求去更改方式。同时,我们也非常欢迎同学们能够提供更多修改其他控件的代码,我们会积极分享相关的使用技巧。让我们一起努力,共同进步~


AirtestIDE下载:airtest.netease.com/
Airtest 教程官网:airtest.doc.io.netease.com/
搭建企业私有云服务:airlab.163.com/b2b

官方答疑 Q 群:526033840

标签:控件,轻松,id,poco,拿下,android,com,click
From: https://www.cnblogs.com/AirtestProject/p/18101141

相关文章

  • AppFlow上新——智谱ChatGLM轻松接入聊天
        智谱AI开放平台提供一系列具有不同功能和定价的大模型,包括通用大模型、超拟人大模型、图像大模型、向量大模型等,并且支持使用您的私有数据对模型进行微调。其中ChatGLM系列模型在国内也享有盛名,现在AppFlow支持了ChatGLM系列模型的接入,可以轻松实现GLM接入钉钉聊天中。......
  • blog-engine-09-nuxt 构建快速、SEO友好和可扩展的Web应用程序变得轻松
    拓展阅读blog-engine-01-常见博客引擎jekyll/hugo/Hexo/Pelican/Gatsby/VuePress/Nuxt.js/Middleman对比blog-engine-02-通过博客引擎jekyll构建githubpages博客实战笔记blog-engine-02-博客引擎jekyll-jekyll博客引擎介绍blog-engine-02-博客引擎jekyll-jekyll如何......
  • 轻松掌握:从预装Win10/11家庭中文版系统升级到最新版的操作全攻略
        Windows10和Windows11是微软推出的两个非常流行的操作系统版本,它们都提供了家庭版(Home)和专业版(Professional)等多个版本。家庭版通常是为个人用户设计的,它提供了日常使用所需的基本功能和一些高级特性,而专业版则包含了更多针对商业用户和企业环境的功能和安全特性......
  • 4.列表控件的总结(ListView)
    ListView常用的属性android:divider分割线的颜色数据适配器三个BaseAdapterimplementsListAdapter,SpinnerAdapterpublicclassSimpleAdapterextendsBaseAdapterpublicclassArrayAdapter<T>extendsBaseAdapterSimpleAdapter主要是显示图片加文字的东西例如:......
  • Python中的datetime模块:轻松拿捏时间操作
    前言在Python中,处理日期和时间是非常常见的任务,无论是在开发Web应用程序、数据分析还是其他领域。datetime模块为我们提供了丰富的功能,可以轻松处理日期和时间,从简单的日期算术运算到复杂的时区转换,应有尽有。本文将深入探讨datetime模块的功能和用法,帮助大家轻松拿捏时间操作。......
  • YYDS,只用几条命令轻松搭建自己的项目管理平台jira
    简介Jira是一款强大的项目管理工具,它可以帮助团队协作、跟踪任务、管理项目,并提高生产力。在本文中,我们将介绍如何使用Docker快速搭建Jira,让你能够快速部署、方便管理和灵活扩展你的项目管理环境。环境准备如果我们还没在电脑或者服务器中安装docker,那我们需要先安装好docker,......
  • WPF StringFormat在Label控件无效
    在WPF程序设计时,若使用Label控件绑定数据后StringFormat进行格式化显示时发现设定的StringFormat无效,但TextBlock控件中使用StringFormat显示正常,导致Label控件StringFormat失败的根本原因在于Label控件的Content属性是一个object对象,Binding.StringFormat仅作用于string类型属性......
  • 3.Android 中Button控件点击事件改变的三个方法总结
    SDKlocationnotfound.DefineavalidSDKlocationwithanANDROID_HOMEenvironmentvariableorbysettingthesdk.dirpathinyourproject'slocalpropertiesfileat'E:\Android\Gao\local.properties'.还没等调试能控制台报错参考https://blog.csdn.n......
  • Android原生ViewPager控件实现卡片翻动效果
    本文实例为大家分享了Android控件ViewPager实现卡片翻动效果的具体代码,供大家参考,具体内容如下先放一张效果图:想要实现这样的效果其实并不是太难,需要对ViewPager的一些细节属性更深入的了解和认识,下面介绍下一个小demo的实现过程:**第一步、**创建卡片viewpager适配器的i......
  • 生产大文件下载导致 OOM,顺藤摸瓜拿下
    上周遇到了生产环境OOM的问题,找了一番之后基本定位了是大文件下载导致的问题,于是在网上搜罗了一番文章,下面分享一篇优质的解决方案,整个排查思路非常清晰,小白可以直接对照着来排查。事故发生上周五下午运营人员反馈,笔者所负责的后台系统从14点以后就卡卡的,虽然页面能够正常加......