【问题标题】:Appium iOS on Bitrise returns false when checking element displayed检查显示的元素时,Bitrise 上的 Appium iOS 返回 false
【发布时间】:2018-06-21 16:34:32
【问题描述】:

目前我正在使用 WebDriverWait (XCUITest) 等待在 iOS 应用上显示元素。

WebDriverWait wait = new WebDriverWait(driver, 15);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("priority 1 program")));

这适用于本地机器,但不适用于 Bitrise 服务器。 通过 Bitrise 的日志,我意识到 Appium 确实返回了元素(找到)但没有显示在屏幕上(isDisplay 返回false)。

[debug] [MJSONWP] Calling AppiumDriver.findElement() with args: ["name","priority 1 program","7b75a5af-448a-4d48-9187-3bbb84aa5519"]
[debug] [XCUITest] Executing command 'findElement'
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, name, class name, -ios predicate string, -ios class chain, accessibility id
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [JSONWP Proxy] Proxying [POST /element] to [POST http://localhost:8100/session/103F53F0-47D8-4604-8CB7-8AB5794DDD9F/element] with body: {"using":"name","value":"priority 1 program"}
[debug] [JSONWP Proxy] Got response with status 200: {"value":{"ELEMENT":"F30723B8-E7B0-4299-B260-AE3455918DBF"},"sessionId":"103F53F0-47D8-4604-8CB7-8AB5794DDD9F","status":0}
[debug] [MJSONWP] Responding to client with driver.findElement() result: {"ELEMENT":"F30723B8-E7B0-4299-B260-AE3455918DBF"}
[HTTP] <-- POST /wd/hub/session/7b75a5af-448a-4d48-9187-3bbb84aa5519/element 200 2540 ms - 122 
[HTTP] --> GET /wd/hub/session/7b75a5af-448a-4d48-9187-3bbb84aa5519/element/F30723B8-E7B0-4299-B260-AE3455918DBF/displayed {}
[MJSONWP] Driver proxy active, passing request on via HTTP proxy
[debug] [XCUITest] Executing command 'proxyReqRes'
[debug] [JSONWP Proxy] Proxying [GET /wd/hub/session/7b75a5af-448a-4d48-9187-3bbb84aa5519/element/F30723B8-E7B0-4299-B260-AE3455918DBF/displayed] to [GET http://localhost:8100/session/103F53F0-47D8-4604-8CB7-8AB5794DDD9F/element/F30723B8-E7B0-4299-B260-AE3455918DBF/displayed] with body: {}
[debug] [JSONWP Proxy] Got response with status 200: "{\n  \"value\" : false,\n  \"sessionId\" : \"103F53F0-47D8-4604-8CB7-8AB5794DDD9F\",\n  \"status\" : 0\n}"

所以我检查了屏幕截图,令人惊讶的是元素显示时没有任何视图重叠。

我已经尝试过不同类型的环境,但都是一样的。

  • mac os 10.12.6,10.13.2
  • appium 1.7.2、1.7.0
  • Xcode 9.2、9.0.1
  • iOS 11.2、iOS 11.0

我也从互联网上进行了一些搜索,但似乎没有任何解决方案。

https://github.com/appium/appium/issues/9377
https://github.com/facebook/WebDriverAgent/issues/746
https://github.com/appium/appium/issues/4131

感谢任何帮助,谢谢。

【问题讨论】:

    标签: ios automation appium bitrise


    【解决方案1】:

    元素可见性有几个未修复的问题,可能与WebDriverAgent 中的issue 或您提到的问题有关,仍未修复。

    作为一种解决方法,您可以:

    • simpleIsVisibleCheck 能力设置为 false 并检查是否有帮助
    • 切换到ExpectedConditions.presenceOfElementLocated(),基本上只等到元素出现,跳过isDisplay属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-11
      • 2017-02-22
      • 1970-01-01
      • 2020-11-03
      • 2011-12-27
      • 1970-01-01
      • 2016-09-05
      • 1970-01-01
      相关资源
      最近更新 更多