目前发现两种浮层定位不到。

  1. 一种是 popupwindow 在一个 UI 界面上有一个不能关闭的 popupwindow, 它始终悬浮在屏幕的某个固定位置。如下图: 通过 ui automator view,我只能看到这个 popupwindow 的结构, 其它下层的控件完全看不见了。 然后在代码里我用了下层的控件的 id 去定位(可以确认 id 是对的),不管是用 appium、robotium 操作都报元素没有找到。

如果有不明白或者想尝试的可以下载 “一号药店” app
下载地址: http://www.111.com.cn/cmsPage/2014061304/(下载安卓版本的)
操作步骤: 1,打开 app
2, 在首页搜索 “小儿感冒颗粒”,确认。 就到上图那个位置了。

popupwindow 设置主要代码:

    ...        
            LayoutInflater inflater = LayoutInflater.from(this);
            View content= inflater.inflate(R.layout.top_navigation, null);
            content.measure(0, 0);           
            pop = new PopupWindow(content, content.getMeasuredWidth(), ViewGroup.LayoutParams.WRAP_CONTENT);
            pop.setContentView(content);
            pop.setBackgroundDrawable(new BitmapDrawable());
            pop.setFocusable(true);
            pop.setOutsideTouchable(false);
...
  1. 我见过的另一种浮层 就一个下拉层,如图:

如果有不明白或者想尝试的可以下载 “手机天猫”
操作步骤: 1, 打开手机天猫

2,首页点击搜索框后面的信息
3,点击跳转页面的 “。。。”

==================================================================================================
解决思路: 1, 什么 id class 无法定位就用坐标点定位, 但是不同的手机分辨率不一样,坐标点不一样呀,我有好多手机。
本来想取手机屏幕分辨率的,比如我的开发手机是 1080 * 1902 , 坐标点 x,y; 换一台机子,我取一下屏幕分辨率,比如分辨率是 320 * 480 ,我就能 1080:x = 320 : x1
,1902: y = 480 : y1; 这样就能取到了,但是在群里有人尝试过,不行;

2, 把所有的手机和坐标点都配制一下,读取配制文件, 感觉可行,但有 10 多台手机,而且每个主要界面都有那个 popupwindow,这个工作量是不是有点大

3, 直接改源代码,去掉 popupwindow,这个是可行的,但是我们的代码有好多分支,每个都打有 popupwindow 和没有 popupwindow 的 app,感觉有点不妥。测试和开发是分开的,开发同学让测试自己改代码打包,这个...
4, 有没有好的方法呢??????
求助,谢谢。


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