学习一下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);
相关推荐
波音彬要多做21 分钟前
41 stack类与queue类
开发语言·数据结构·c++·学习·算法
m0_748256781 小时前
WebGIS实战开源项目:智慧机场三维可视化(学习笔记)
笔记·学习·开源
南七澄江2 小时前
各种网站(学习资源及其他)
开发语言·网络·python·深度学习·学习·机器学习·ai
机智的叉烧8 小时前
前沿重器[57] | sigir24:大模型推荐系统的文本ID对齐学习
人工智能·学习·机器学习
量子-Alex9 小时前
【多模态聚类】用于无标记视频自监督学习的多模态聚类网络
学习·音视频·聚类
吉大一菜鸡9 小时前
FPGA学习(基于小梅哥Xilinx FPGA)学习笔记
笔记·学习·fpga开发
爱吃西瓜的小菜鸡12 小时前
【C语言】判断回文
c语言·学习·算法
小A15912 小时前
STM32完全学习——SPI接口的FLASH(DMA模式)
stm32·嵌入式硬件·学习
岁岁岁平安12 小时前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA12 小时前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计