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

yes!! · April 07, 2015 · Last by water replied at April 08, 2015 · 2993 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 Author

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

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

yes!! #4 · April 08, 2015 Author

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

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

yes!! #6 · April 08, 2015 Author

#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 Author

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

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

yes!! #10 · April 08, 2015 Author

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

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

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

yes!! #13 · April 10, 2015 Author

#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