Appium 如何获得 Chrome 页面的元素 id, name ...

yes!! · April 07, 2015 · Last by water replied at April 08, 2015 · 3682 hits

appium 小白,已经在windows上以.exe的方式安装appium server,并可以运行native app的测试以及用inspector获得native app的页面元素。但使用appium的目的是测Chrome浏览器内容或者hybrid app。

现在的问题是打开一个网页后(www.baidu.com)如何获得该页面的元素ID等信息进而对页面进行操作呢。比如获得百度搜索栏的ID然后输入内容,再click‘百度一下“按钮完成搜索。

之前没有做过web测试,也没用过selenium, 如果可以提供一下学习目录或者给出参考资料链接同样赶集不尽!!!

共收到 14 条回复 时间 点赞

电脑上的Chrome,按F12

yes!! #2 · April 07, 2015 作者

#1楼 @weamylady 多谢,不过我在做移动端的web自动化测试~~

#2楼 @sunflower 移动端请百度 Google ADB Plugin

yes!! #4 · April 08, 2015 作者

#3楼 @weamylady 安装了一个chromeADB应用,可以看一些手机上安装的app的信息和内存情况,不知道对获得chrome里的页面元素有什么帮助

#4楼 @sunflower 请详细google一下,Chrome adb Plugin,是一个插件。

yes!! #6 · April 08, 2015 作者

#5楼 @weamylady 看介绍应该是可以查到页面中的信息的,但点Inspect后显示一个空白的窗口。不知你遇到过没有,chrome已经是最新版本了

把下面代码放到一个.bat文件里面,双击执行就能获取到源码了,有时候是可以看到WebView的,有时候不行,看运气吧。

call adb shell uiautomator dump
call adb pull /storage/sdcard/window_dump.xml .
call window_dump.xml
yes!! #8 · April 08, 2015 作者

#7楼 @weamylady 这种方式跟Uiautomatorviewer抓到的应该是一样的,都不能获得页面中的具体元素。多谢你的宝贵意见,看来暂时是解决不了了。。

#8楼 @sunflower 有时候是可以的。

yes!! #10 · April 08, 2015 作者

#9楼 @weamylady 或许某些特定的网页或某些时候是可以的,但那样的脚本就太不可靠了,呵呵。。。难道没有人做Android web测试吗,除了您之外都没人回答呢

#10楼 @sunflower 因为论坛早就有人问过了,你可以自己搜帖子。

Chrome里面自带有工具Inspect devices,可以看到Hybrid里面的元素,不过这个首次使用的时候需要***

yes!! #13 · April 10, 2015 作者

#12楼 @shootingstar 多谢,正在找***的工具

问题已解决。概括来讲有两种方法可以得到web页面的元素。

  1. Chrome Inspector。直接在chrome浏览器地址栏里输入chrome://inspect即可以看到手机上当前打开的web页面或者bybrid程序的web页面。这种方式要求pc端chrome版本高于手机中的chrome版本,而且中国用户需要***。

  2. 如果第一种方式不好用,可以选择appium提供的在代码里调用System.out.println(driver.getPageSource())。这种方式需要先编写出到达这个界面的步骤代码(如你想查看登录Google账号的界面的结构,就必须先一步步的编脚本实现setting ->account>add account->google account->google 登录界面)。总体来说比较麻烦,而且得到的结果也不直观。。。不过总算也能达到目的,谁叫我这方法1死活不管用呢…………

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up