- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Appium控件定位方法要点
求助:Appium 元素定位的问题
appium怎么获取h5页面的元素啊?跪求大神指点。你先用appium切换到webview,然后获取页面源码打印,看web源码你就知道怎么识别了我也遇到了这样的问题,我是这样解决的:我的手机是Android4.3,我使用手机chrome浏览器打开百度首页,获取输入框,在输入框中输入123,点击百度一下;1.看下图,可以看到editText上有一个webview,所以浏览器打开网页也是有webview,首先获取webview,webview的name可以用方法查看;public WebDriver webView(String contextName) {? ?? ???Set contextNames = ((AppiumDriver)driver).getContextHandles();? ?? ???for (Object context : contextNames) {? ?? ?? ?? ?if (context.toString().contains(contextName)) {? ?? ?? ?? ?? ? System.out.println(context);? ?? ?? ?? ?? ? return (AppiumDriver) driver).context(contextName);? ?? ?? ?? ?}? ?? ???}? ?? ???return null;? ? }
2.先切换到webview,我的webview name是:WEBVIEW_1driver.webView(WEBVIEW_1).findElement(By.id(index-kw)).sendKeys(123);driver.webView(WEBVIEW_1).findElement(By.id(index-bn)).click();3.输入框和按钮的定位可以用chrome浏览器, 按F12,很容易定位。比UI Automator好用很多。Appium基于安卓的各种FindElement的控件定位方法实践和建议/kf/201410/340345.html
AppiumDriver的各种findElement方法的尝试,尝试的目标应用是SDK自带的Notepad应用。
1. findElementByName
1.1 示例
el = driver.findElementByName(Add note);
assertThat(el.getText(),equalTo(Add note));
1.2 如何获得Name
安卓设备没有找到适合的方法,尝试用Appium Inspector,但是使用了当前最新的“AppiumForWindows-”没有看到这个属性,且Inspector在 Windows下面非常的不稳定,很容易crash。真心期望Appium团队尽快解决这个问题
iOS设备倒可以用Appium Inspector获得(以下图片来自网上)
1.3 建议
个人建议可以尝试先用view显示的文本作为name看是否能拿到该控件,按照我个人的经验一般都是会成功的,所以我很怀疑安卓上面控件的name 是否就等于text。如果确实还是不行的话就只好放弃用name了。或者等待Appium后来的稳定的inspector发布后看是否可以获得控件的 name。喎?/kf/ware/vc/ target=_blank class=keylinkvcD4KPHA+1eK49re9t6jU2kFwcGl1bTEuMNauuvPG5Mq10tG+rbn9yrG2+NKqsbtmaW5kRWxlbWVudEJ5QWNjZXNzaWJpbGl0eUlkyKG0+rXDwcujrLK71qq1wM6qyrLDtLu5xNy199PDo6yyws/rysdBcHBpdW3NxbbTz+uxo8H00ru2qLXEvObI3dDU0tTGvbusuf22yLDJoaPH67Lpv7Sjumh0dHBzOi8vZ2l0aHViLmNvbS9hcHBpdW0vYXBwaXVtL2Jsb2IvbWFzdGVyL2RvY3MvZW4vYWR2YW5jZWQtY29uY2VwdHMvbWlncmF0aW5nLXRvLTEtMC5tZDwvcD4KPGgxPjIuIGZpbmRFbGVtZW50QnlBbmRyb2lkVUlBdXRvbWF0b3I8L2gxPgo8aDI+Mi4xIMq+wP08L2gyPgo8cD48L3A+CjxwcmUgY2xhc3M9brush:java; el = driver.findElementByAndroidUIAutomator(new UiSele
文档评论(0)