学习一下Appium 常用方法介绍

由于 appium 是扩展了 Webdriver 协议,所以可以使用 webdriver 提供的方法,比如在处理 webview 页面,完全可以使用 webdriver 中的方法。当然在原生应用中,也可以使用。

1.1 点击操作

python 复制代码
WebElement button = driver.findElement (By.id("login"));
或者
WebElement button = driver.findElementById("login" )
//然后执行点击操作
button.click();

由元素对象调用 click()方法。

1.2清除操作

python 复制代码
WebElement username = driver.findElement (By.name( "username input" )),
或者
WebElement username = driver.findElementName("username input");username.clear():

当执行这个方法的时候,输入框的内容会被清空。

1.3 获得元素属性的值

getAttribute(String name)这个方法。

代码如下:

python 复制代码
WebElement username = driver.findElement(By.id("u"));
或者  
WebElement username = driver.findElementId("u");username. getAttribute("XXXXX");

这样就可以获得XXXX 的属性值了。

1.4 获取元素文本

python 复制代码
登录按钮的源码:
<button class="btn btn-major" id="loginBtn" type="button">登录</button>WebElement 中提供一个 getText()方法可以获取,代码如下:WebElement login= driver.findElement (By.id("loginBtn"));
或者
WebElement login= driver.findElementId("loginBtn" );login. getText():

这样就能获取"登录"文本了。

1.5元素是否显示

判断这个页面元素是不是显示出来了。

方法有个返回值类型是 boolean,也就是说如果元素显示了返回 true,如果没有显示返回 false。

python 复制代码
WebElement login= driver.findElement (By.id("loginBtn" ));
或者
WebElement login= driver.findElementId("loginBtn" );
//webview 或者原生 app 都通用
login.isDisplayed();   

1.6 元素是否被选择

有这样的情况,复选框或者是单选框,我们需要判断这个框是不是被勾选了,此时这个方法就派上用场了。

python 复制代码
WebElement checkbox= driver.findElement (By. id( "checkbox id" ));或者
WebElement checkbox= driver.findElementld( "checkbox id" );
//webview 和原生 app 通用
checkbox.isSeelected():
checkbox.isSeelected();会有返回值,如果勾选了,返回 true,如果没有勾选返回 false。

1.7 元素是否被启用

有些按钮,可能在页面显示上被灰掉,就是不让点击,这个时候这个按钮是不可用的。那么我们如何判断这个按钮是否能被点击呢?

用isEnabled()方法.

python 复制代码
WebElement login= driver.findElement (By.id( "loginBtn" ));
或者
WebElement login= driver.findElementById( " loginBtn" );
//webview 和原生app 通用
login. isEnabled();
如果可用返回 true,如果不可用返回 false。

1.8 提交操作

在有表单的的界面上,可以不通过点击按钮进行提交操作,这就需要用到submit0方法

比如一个 webview 元素的源码:

python 复制代码
<button class="btn btn major" id="loginBtn" type="submit">登录</button>

此源码需要在一个表单(Form)中,并且 type 需要是 submit 类型,此时我们的代码可以这样写:

python 复制代码
WebElement login= driver.findElement (By.id( "loginBtn" ));
或者
WebElement login= driver.findElementByld( "loginBtn");
//webview 和原生的 app 提交按钮通用
login. submit ();

1.9 滑动操作

python 复制代码
核心代码如下:
fouchAction tAction=new TouchAction(driver):
tAction,press(400,500).waitAction(800).moveTo (50, 500).release0. perform();

使用的是 TouchAction 类,首先调用 press 方法,然后加上等待动作的缓冲时间800 毫秒,接着移动到坐标(moveTo),当移动到指定坐标点的时候,松开手释放,最后调用 perform 方法就可执行整个操作。

1.10 设置等待页面加载完毕

python 复制代码
int pageLoadTime = 10;
driver,manage().timeouts (). pageLoadTimeout (pageLoadTime,TimeUnit. SECONDS);
这段代码放在加载 driver.get(url)方法之前,等待给定的时间pageLoadTime,如果在给定时间内网页还是没有加载出来就会报错,如果在小于给定时间内加载完毕了,剩下的时间不再等待。

1.11 Spinner 下拉菜单选择

Spinner 是安卓 SDK 中的一个下拉菜单组件,它可以让用户从下拉框中选择不同值。代码如下:

python 复制代码
//点击下拉框
driver.findElement (By.id ("android:id/text1")).click ();//滑动查找直到找到 india
driver.scrollToExact("India");
//点击一下 India
driver.findElement (By.name ("India")).click();

1.11 锁定屏幕

python 复制代码
driver.lockDevice();

1.12 将 app 置于后台运行

python 复制代码
driver.runAppInBackground(int seconds);

1.13 启动 Activity

在当前应用中打开一个 activity 或者启动一个新应用并打开一个 activity只能在 Android 上使用

python 复制代码
driver.startActivity("appPackage","com example.android. apis", null,null);
相关推荐
YJlio11 分钟前
Sysinternals 磁盘工具学习笔记(13.0):从 VHD 备份到碎片整理与卷标管理总览
服务器·笔记·学习
iconball13 分钟前
个人用云计算学习笔记 --25 OpenStack 框架
运维·笔记·学习·云计算
Nwiliuyw17 分钟前
Isaac Gym的WARNING: Forcing cpu pipeline. GPU pipeline disabled无法启用问题可能是个幌子骗了你
人工智能·经验分享·学习
iconball33 分钟前
个人用云计算学习笔记 --27 云基础介绍
运维·笔记·学习·华为云·云计算
其美杰布-富贵-李1 小时前
PyTorch Tabular 学习笔记
pytorch·笔记·学习·表格
wdfk_prog1 小时前
[Linux]学习笔记系列 -- [fs]initramfs
linux·笔记·学习
风行男孩1 小时前
stm32基础学习——定时器的使用
stm32·单片机·学习
深蓝海拓1 小时前
PySide6从0开始学习的笔记(十八) MVC(Model-View-Controller)模式的图形渲染体系
笔记·python·qt·学习·pyqt
知识分享小能手2 小时前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04 的软件包管理 —— 全面详解(9)
linux·学习·ubuntu
蒙奇D索大2 小时前
【数据结构】排序算法精讲|折半插入排序全解:高效优化、性能对比、实战剖析
数据结构·学习·考研·算法·排序算法·改行学it