UI自动化--寻找控件篇

appium集成了webdriver && uiautomator

首先获取该app类型 nativeapp/webapp/hybridapp

driver.getContextHandles() //查看该app的类型 native_app 、webview 、两者都有

原声app用uiautomator,webview用webview 

nativeapp 的webview需要打开debug模式时才能有nativeapp转化为hybridapp(WebView.setWebContentsDebuggingEnabled(true);


webview 可以使用byxpath

uiautomator 可以使用findElementByAndroidUIAutomator 

使用webview 时驱动类型需要是webview型,uiautomator需要是NATIVE_APP型

获取驱动类型driver.getContext()

更改驱动类型:driver.context("NATIVE_APP");

1、webdriver

org.openqa.selenium.By 利用selenium的获取控件方式

driver.findElement(By.xpath("//div[@class='pet_zan_more']/span)).getAttribute("innerHTML");

xpath

.// 当前节点下的自己点

// 在节点下循环查找

/ 文档根节点


调试方法:在浏览器console中查找元素

//查找document下的button节点,顺序放回list

document.evaluate("//button",document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null)

//查找document下的第一个button按钮(document中的按钮编号从1开始)

document.evaluate("//button[1]",document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null)

结果中的snapshotLength代表查找到的节点长度

查找evaluate结果类型:http://www.w3school.com.cn/xmldom/dom_xpathresult.asp(也可以用数据代指,数字从0开始编号)

2、UIAutomator

AndroidSDK中的uiautomator.jar包中包含UiSelector的控件识别方法

uiautomator -> driver.findElementByAndroidUIAutomator 利用uiautomator的api查找元素

:driver.findElementByAndroidUIAutomator("new UiSelector().description(\" uiautomator\")")

UIdevices

UISelector -> 返回UIObject

3、直接调用javascript

AndroidDriver继承的appiumDriver继承的DefaultGenericMobileDriver继承了RemoteWebDriver,这个方法实现了接口JavascriptExecutor的executeScript方法,可以执行js脚本。

JavascriptExecutor js = driver;

Object scriObject = js.executeScript("alert(\"test\")");



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值