目前我正在使用 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 操作系统 10.12.6,10.13.2
- 应用程序 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
任何帮助表示赞赏,谢谢。