由于 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);