Appium Appium+IOS 同应用内,其他功能都可以自动化测试,UITableView 页面无法自动化。

阿三 · 2019年08月08日 · 最后由 阿三 回复于 2019年08月19日 · 2277 次阅读

只要进入应用的视频播放页,就无法自动化点击页面内任何按钮,手机效果是跟断网一样,一直无法正常视频播放,(不自动化手动点击进入播放页正常,一旦用 appium 自动化进入这个播放页就无法进行自动化。同应用都其他功能都可以正常自动化测试)以下日志是进入这个无法自动化的页面,获取控件信息都报错。
后来查了同问题描述所在:https://discuss.appium.io/t/appium-xcuitest-some-of-the-uitableview-the-screen-elements-are-not-able-to-inspect/23662

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 8 条回复 时间 点赞

在有 UITableView 页面下用 XCUITEST 输出控件树超时很正常,具体原因和解决方法可以翻看下 Appium 里的 issues,可以暂时打开 WDA 工程全局搜- (BOOL) isWDVisible 把方法内实现都注释了 return false,在试试

ltyd5788 回复

试了你说的 WDA 工程操作,运行了应用,没有解决问题。

ltyd5788 回复

issues 里的这个方法也是不行:
WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOf(driver.findElement(ByAccessibilityId.AccessibilityId("下载")))).click();

阿三 回复

这样,先启动 WDA 分别访问/source?format=xml、 /source?format=json 接口,看下可以获取到页面控件树么,还是访问这两个接口的同时 App 出现了异常崩溃,我看你提供的日志应该是出现 Crash,如果出现异常崩溃可以让研发 hook UITableViewCellAccessibilityElement 方法 https://github.com/facebookarchive/WebDriverAgent/issues/382

ltyd5788 回复

2 个接口都无法获取页面控件树。应用没奔溃,是一直请求 UITableView 列表滑动操作,导致卡在页面上无法点击

ltyd5788 回复

抓包直观看到,一进入 UITableView 列表,就不断请求列表数据,导致卡死页面不动,无法点击。(如果不用自动化手动点击是没有问题的)

https://testerhome.com/topics/12352 这篇帖子跟你反馈的问题是一样的

ltyd5788 回复

我看了,但是 WDA 源码版本不一样,我是最新版本 1.13.0 还不知道怎么改?也找不到对应相识修改的地方。还请指点

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册