android_uiautomator元素定位

 
'''
通过UIAUTOMATOR的text属性定位到元素,并打印文本
'''
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
import time
# For W3C actions
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.actions import interaction
from selenium.webdriver.common.actions.action_builder import ActionBuilder
from selenium.webdriver.common.actions.pointer_input import PointerInput
 
caps = {}
caps["platformName"] = "Android"
caps["appium:platfformVersion"] = "11"
caps["appium:deviceName"] = "OFYDHUCIPN8PHEBI"
caps["appium:appPackage"] = "com.mymoney"
caps["appium:appActivity"] = "com.mymoney.biz.main.v12.MainActivityV12"
caps["appium:noReset"] = True
caps["appium:noSign"] = True
caps["appium:unicodeKeyboard"] = True
caps["appium:resetKeyboard"] = True
caps["appium:ensureWebviewsHavePages"] = True
caps["appium:nativeWebScreenshot"] = True
caps["appium:newCommandTimeout"] = 3600
caps["appium:connectHardwareKeyboard"] = True
 
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
#以上代码从Session Information复制,直接使用
 
 
#通过text属性实现元素定位
#text属性全匹配
add_trans_btn_1 = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR,('text("记一笔")'))
#打印所有定位到元素的文本
print ("通过text属性定位到元素的文本为:",add_trans_btn_1.text)
#通过textContains实现元素定位
add_trans_btn_2 = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR,('textContains("一笔")'))
#打印所有定位到元素的文本
print ("通过textContains定位到元素的文本为:",add_trans_btn_2.text)
 
#通过textStartsWith实现元素定位
add_trans_btn_3 = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR,('textStartsWith("记一")'))
#打印所有定位到元素的文本
print ("通过textStartsWith定位元素的文本为:",add_trans_btn_3.text)
#通过textMatches实现元素定位
add_trans_btn_4 = driver.find_element(AppiumBy.ANDROID_UIAUTOMATOR,('textMatches("记.+笔")'))
#打印所有定位到元素的文本
print ("通过textMatches定位元素的文本为:",add_trans_btn_4.text)
 
 
#退出
driver.quit()

 

APP自动化测试(6)-元素定位by_android_uiautomator_find_element_by_android_uiautomator-CSDN博客文章浏览阅读1.5k次,点赞3次,收藏12次。by_android_uiautomator常见元素,快速定位到我们要的元素_find_element_by_android_uiautomatorhttps://blog.csdn.net/wanglx1984/article/details/128910028

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/491212.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

小程序富文本图片宽度自适应

解决这个问题 创建一个util.js文件,图片的最大宽度设置为100%就行了 function formatRichText(html) {let newContent html.replace(/\<img/gi, <img style"max-width:100%;height:auto;display:block;");return newContent; }module.exports {formatRichT…

2024.3.26

头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> #include <QTimerEvent> #include <QTimer> #include <QtTextToSpeech>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : p…

centos创建svn库步骤

1.切换root用户 1、设置root用户的密码&#xff1a; sudo passwd root 2、切换到root用户权限 su 3、切换回个人用户权限 exit 2.用root用户执行yum install -y subversion 3.创建文件夹mkdir -p /data/svn/repository 4.创建SVN 版本库 5.输入命令&#xff1a; svnadmin creat…

第 1 章.提示词:开启AI智慧之门的钥匙

什么是提示词&#xff1f; 提示词&#xff0c;是引导语言模型的指令&#xff0c;让用户能够驾驭模型的输出&#xff0c;确保生成的文本符合需求。 ChatGPT&#xff0c;这位文字界的艺术大师&#xff0c;以transformer架构为基石&#xff0c;能轻松驾驭海量数据&#xff0c;编织…

Java 与 Go:时间函数

在软件开发中&#xff0c;时间和日期函数是必不可少的组成部分&#xff0c;而 Java 和 Go 是两种备受欢迎的编程语言&#xff0c;它们在时间和日期函数方面有着各自独特的特性。本文将对比 Java 和 Go 在时间和日期函数上的优劣&#xff0c;并探讨它们的用法和适用场景。 Java…

2024品牌私域运营:「去中心化」正在成为企业决胜关键

越来越多的品牌选择以DTC模式与消费者互动和销售。通过与消费者建立紧密联系&#xff0c;不仅可提供更具成本效益的规模扩张方式&#xff0c;还能控制品牌体验、获取宝贵的第一方数据并提升盈利能力。许多企业采取的DTC私域策略以交易为中心的方法往往导致了成本上升和运营复杂…

网络编程(1)写一个简单的UDP网络通信程序【回显服务器】,并且实现一个简单的翻译功能

使用 JAVA 自带的api 目录 一、回显服务器 UdpEchoServer 服务器代码 客户端代码 二、翻译功能 UdpDictServer 在UdpDictServer里重写process方法 一、回显服务器 UdpEchoServer /*** 回显服务器* 写一个简单的UDP的客户端/服务器 通信的程序* 这个程序没有啥业务逻辑&am…

RGB与gray图互转

参考博客 https://www.cnblogs.com/alex-bn-lee/p/15140708.html 显示图片 import cv2 from PIL import Imageimg cv2.imread("./mingyu.png") img cv2.cvtColor(img, cv2.COLOR_BGR2RGB)display(Image.fromarray(img)) RGB 转gray gray cv2.cvtColor(img, cv2…

【从零开始学习Redis | 第八篇】认识Redis底层数据结构(下)

目录 前言&#xff1a; ZipList&#xff1a; Ziplist的特性: QucikList: QuicList特征&#xff1a; SkipList&#xff1a; 跳表特征&#xff1a; RedisObijct&#xff1a; 小心得&#xff1a; 总结&#xff1a; 前言&#xff1a; 在现代软件开发中&#xff0c;数据…

NGINX 反向代码 CORS

我遇到了一个问题就是 Nginx 是作为反向代理服务器部署的&#xff0c;但因为 Nginx 的配置导致 CORS 问题。 在这个时候我们可以对 Nginx 的配置文件进行修改&#xff1a; 在 location 后添加下面的内容&#xff1a; add_header Access-Control-Allow-Origin *; add_header A…

浏览器https受信任证书生成——openssl颁发受信任证书

站点常常由于没有受信任的第三方CA机构颁发证书,使用https访问时,浏览器常常会弹出不安全的提示,为解决该问题,可以使用openssl颁发个人证书来解决该问题。 1openssl安装及使用方式参考:32.9 x509_OpenSSL 中文手册https://www.openssl.net.cn/docs/230.html2.本文章所有生…

快速匹配和编译NXP官方uboot-imx

目录 概述 1 搭建编译环境 2 下载和编译uboot-imx 2.1 下载软件包 2.2 编译代码 3 总结 概述 本文主要讲述如何快速匹配和编译NXP官方uboot-imx。文中总结了生成u-boot文件的整个流程&#xff0c;笔者通过实操的方法&#xff0c;一步步从编译器下载&#xff0c;编译环境…

使用postman调用Vcenter-Api

一、下载postman Postman API Platform 二、Vcenter-APi-文档 Create Session | CIS | vSphere CIS REST APIs 三、如何调用&#xff1f; 一、获取访问凭证 两种方式进行鉴权&#xff0c;这里讲第一种。 二、使用postman调用Api获取凭证 下面就是vmware-api-session-id …

Linux Php 连接 SAP Hana数据库客户端

下载地址 : SAP Development Tools https://tools.hana.ondemand.com/#hanatools 进入hanaclient-2.19.21-linux-x64 无需编译&#xff0c;运行 ./hdbinst 提示没有权限&#xff0c;执行chmod x * 有个子目录里面的也是没有权限&#xff0c;进入那个子目录 执行chmod …

MySQL WHERE 条件查询

我们通常要求在执行 SELECT 查询时&#xff0c;都要带上查询条件。那这一节&#xff0c;我们就来学习一些简单的 WHERE 条件查询。 我们仍然以技术派文章表 article 为例&#xff0c;比如说我们要查找标题为“聊聊分库分表”的文章&#xff0c;可以这么写&#xff1a; SELECT *…

Nginx(Docker 安装的nginx)配置域名SSL证书

1.首先确保Linux环境上已经安装了docker&#xff08;可参考VMware使用和Linux安装Docker_wmware直接部署linux和安装docker后-CSDN博客 2.通过docker 安装nginx&#xff08;可参考Linux 环境安装Nginx—源码和Dokcer-CSDN博客&#xff09; 3.安装SSL证书 3.1 在宿主机中创建…

DaisyDisk for mac 苹果电脑磁盘清理工具

DaisyDisk for Mac是一款直观易用的磁盘空间分析工具&#xff0c;专为Mac用户设计&#xff0c;旨在帮助他们快速识别和管理磁盘上的文件与文件夹&#xff0c;从而释放存储空间。 软件下载&#xff1a;DaisyDisk for mac 激活版 DaisyDisk采用独特的可视化界面&#xff0c;将磁盘…

R语言使用函数随机抽取并求均值和做T检验,最后输出随机抽取50次均值和pvalue的结果

1.输入数据&#xff1a;“5utr-5d做ABD中有RG4和没有RG4的TE之间的T检验.csv” 2.代码&#xff1a; setwd("E:\\R\\Rscripts\\5UTR_extended_TE") # 载入必要的库 library(tidyverse) library(dplyr) library(openxlsx) # 读取数据 data <- read.csv("5ut…

机器学习笔记(4)—逻辑回归(Logistic Regression)

文章目录 逻辑回归&#xff08;Logistic Regression&#xff09;分类问题假说表示判定边界代价函数简化的成本函数和梯度下降多类别分类&#xff1a;一对多 逻辑回归&#xff08;Logistic Regression&#xff09; 分类问题 分类问题中&#xff0c;我们要预测的变量 y y y是一…

第2章 进程与线程(4)

2.4 死锁 多个进程因竞争资源而造成的一种僵局。若无外力,这些进程都无法推进。 2.4.1 死锁的概念 死锁,饥饿,死循环的对比 死锁产生的原因: (1)系统资源的竞争 (2)进程不合理的推进顺序 (3)信号量使用不恰当也会造成死锁 总结:对不可剥夺的资源的不合理分配导致死锁 死锁产…