长久以来没有一个人写个具体的 selendroid 教程,害得我们这些初入门的都不懂得大神们说的 selendroid 有自己的 inspector 是啥意思。或者一说 webview,大神们就说用 selendroid 模式,然后无语中。。。
吐槽完毕。没办法只好自己去官网看了一遍又一遍。最终还是把官网的 demo 跑起来了。。
官网地址:http://selendroid.io/
首先,先去官网下 jar 包,目前我用到过的就是 selendroid-standalone-0.15.0-with-dependencies.jar 和 selendroid-client-0.15.0.jar。search 里面都有,其实里面的都可以下载下来,免得到时候些脚本的时候连缺什么都不知道。

再然后把最右边的 demo 的 apk 下下来。
打开模拟器,我用的是 genymotion,版本是 4.1.1。
所有的都准备好了,接下来打开你的 cmd 命令,然后到你下载的 jar 包和 demo 的 apk 下的文件夹输入

java -jar selendroid-standalone-0.15.0-with-dependencies.jar -app selendroid-test-app-0.15.0.apk

这样就打开了 selendroid-standalone 的一个端口为 4444 的服务器。
打开浏览器,输入http://localhost:4444/wd/hub/status,得到以下信息,说明你运行成功了。

再然后打开 Eclipse,编写 demo 脚本,添加 jar 依赖。

@Test
public void test() throws Exception {
    SelendroidCapabilities capa = new SelendroidCapabilities("io.selendroid.testapp:0.15.0");

    WebDriver driver = new SelendroidDriver(capa);
    //driver.getPageSource();
    WebElement inputField = driver.findElement(By.id("my_text_field"));
    Assert.assertEquals("true", inputField.getAttribute("enabled"));
    inputField.sendKeys("Selendroid");
    Assert.assertEquals("Selendroid", inputField.getText());
    driver.quit();
}

现在重点来了,怎么打开 inspector 呢。打开浏览器输入:http://localhost:4444/inspector。结果得到的是:

它是让你跑 debug 模式,然后才能打开 inspector。在代码中随便定个点,然后才能定位。
再次刷新http://localhost:4444/inspector,可以正确定位到了,借用官网的图。

而且惊喜的发现点击 inspector 上的元素,在下面的框会生成 xpath。

试过可以直接用。至于后面的 HTML Source 一直都是空白,不知道为啥。
下一步可以结合 appium 的 Selendroid 用在项目中。期望 webview 可以顺利解决。
总结:Selendroid Inspector 总体感觉还是不错,就是画面做的不够好。不过比 appium Android 自带的 inspector 渣渣和 UIAutomatorviewer 好多了,这两个要是改进到能支持 webview 的定位多好,不用瞎折腾了。
更新:今天又用了会 selendroid,果然槽点特别多。。
1.每次脚本改了任何代码,server 都要重新再次打开。改进办法:写个 bat 文档,每次点开就行。
2.webview 居然定不到具体的元素,定到的还是一整块。自动生成的 xpath 也不能用。最后只好用 driver.getPageSource(),官网也推荐用这个。
3.自带 inspector 不能用代理,否则会显示不出来。


↙↙↙阅读原文可查看相关链接,并与作者交流