appium定位HTML,appium 元素定位与交互中文文档

元素定位与交互

Appium 支持一个 Webdriver 元素定位方法的子集

find by "tag name" (i.e., 通过 UI 的控件类型)

find by "name" (i.e., 通过元素的文本, 标签, 或者开发同学添加的 id 标示, 比如 accessibilityIdentifier)

find by "xpath" (i.e., 具有一定约束的路径抽象标示, 基于 XPath 方式)

### 标签名抽象映射

例子

找到屏幕上所有的 UIAButtons

WD.js:

driver.elementsByTagName('button', function(err, buttons) {

// tap all the buttons

var tapNextButton = function() {

var button = buttons.shift();

if (typeof button !== "undefined") {

button.click(function(err) {

tapNextButton();

})

} else {

driver.quit();

}

}

tapNextButton();

});

Ruby:

buttons = @driver.find_elements :tag_name, :button

buttons.each { |b| b.click }

Python:

[button.click() for button in driver.find_elements_by_tag_name('button')]

找到所有文本内容 (或者 accessibilityIdentifier) 为"Go"的元素

WD.js:

driver.elementByName('Go', function(err, el) {

el.tap(function(err) {

driver.quit();

});

});

Ruby:

@driver.find_element(:name, 'Go').click

Python:

driver.find_element_by_name('Go').click()

找到以"Hi, "开头的导航条元素

WD.js:

driver.elementByXpath('//navigationBar/text[contains(@value, "Hi, ")]', function(err, el) {

el.text(function(err, text) {

console.log(text);

driver.quit();

});

});

Ruby:

@driver.find_element :xpath, '//navigationBar/text[contains(@value, "Hi, ")]'

通过 tagName 查找元素

Java:

driver.findElement(By.tagName("button")).sendKeys("Hi");

WebELement element = findElement(By.tagName("button"));

element.sendKeys("Hi");

List elems = findElements(By.tagName("button"));

elems.get(0).sendKeys("Hi");

Python:

driver.find_elements_by_tag_name('tableCell')[5].click()

FindAndAct

你也可以通过一行命令来完成元素的查找和交互 (只适用于 IOS)

举个例子, 你可以通过一次调用来实现查找一个元素并点击它, 使用的命令是mobile: findAndAct

Python:

args = {'strategy': 'tag_name', 'selector': 'button', 'action': 'tap'}

driver.execute_script("mobile: findAndAct", args)

用一个滑动手势进行下拉刷新

Python:

js_snippet = "mobile: swipe"

args = {'startX':0.5, 'startY':0.2, 'startX':0.5, 'startY':0.95, 'tapCount':1, 'duration':10}

driver.execute_script(js_snippet, args)

使用 Appium Inspector 来定位元素

(翻译备注: 这个工具目前只有 Mac 版本, 如果你使用的是 windows, 可以使用 android 自带的 traceview 工具来获得元素的位置)

Appium 提供了一个灵活的工具 Appium Inspector, 允许你在 app 运行的时候, 直接定位你正在关注的元素. 通过 Appium Inspector(靠近 start test 按钮的 i 标示文本), 你可以通过点击预览窗口上的控件来获得它的 name 属性, 或者直接在 UI 导航窗口中定位

概述

Appium Inspector 有一个简单的布局, 全部由如下窗口组成.

UI 导航器, 预览, 录制与刷新按钮, 和交互工具

Overview.png

例子

启动 Appium Inspector 后, (通过点击 app 右上的小"i"按钮), 你可以定位任何预览窗口中的元素. 作为测试, 我正在查找 id 为"show alert"的按钮

Step1.png

要找到这个按钮的 id, 在定位预览窗口中我点击了"show alert"按钮, Appium Inspector 在 UI 导航窗口中高亮显示了这个元素, 然后展示了刚被点击按钮的 id 和元素类型

Step2.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值