学习一下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);
相关推荐
apple-mapping3 小时前
网络RTK定位学习总结
学习·网络rtk
楚山之石4 小时前
【Lancet Neurology 】多发性硬化认知障碍的 SDMT 筛查、灰质萎缩标志与认知康复循证路径
图像处理·人工智能·学习·mri
海海不掉头发6 小时前
CSDN博客_时序预测9模型复现对比
人工智能·学习·软件工程
蓝祁子yoky8 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
架构师伯子明8 小时前
Ros 学习十三:IK Demo
学习
小羊没烦恼!9 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
幼儿园蛋小黄9 小时前
从 STM32N647 的 AI 部署入门嵌入式:一条可落地的学习路线
人工智能·stm32·学习
Y.99911 小时前
电脑黑屏只有鼠标能动
学习
架构师伯子明11 小时前
FFmpeg C++学习(一):编译和demo
开发语言·c++·学习
叼烟扛炮11 小时前
[LangChain] 学习笔记(02):LCEL 链式调用与动态模型配置实战
服务器·开发语言·网络·笔记·学习·langchain