0

最近,我将我的 appium 版本更新为1.11.1,并在我进行了基本验证之后,例如在我的 Android 应用程序的新屏幕布局中检查可点击元素状态(之前我通过 UI Automator 查看器查看了所有项目都是“可点击 = false”) tool),所以在执行测试之后,我在响应中看到所有项目都返回了属性“clickable=true”,并且 size() 方法返回了 14 个元素而不是预期值“0”。

这里执行的验证步骤示例:

"driver.findElementsByAndroidUIAutomator("new UiSelector().clickable(true)").size()"

以及来自 Appium 服务器的日志响应:

[debug] [W3C (ee1567a8)] Calling AppiumDriver.findElements() with args: ["-android uiautomator","new UiSelector().clickable(true)","ee1567a8-d179-433a-870b-61403e6ce2f8"]
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] [BaseDriver] Waiting up to 10000 ms for condition
[debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"find","params":{"strategy":"-android uiautomator","selector":"new UiSelector().clickable(true)","context":"","multiple":true}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got data from client: {"cmd":"action","action":"find","params":{"strategy":"-android uiautomator","selector":"new UiSelector().clickable(true)","context":"","multiple":true}}
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command of type ACTION
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Got command action: find
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Finding 'new UiSelector().clickable(true)' using 'ANDROID_UIAUTOMATOR' with the contextId: '' multiple: true
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Parsing selector: new UiSelector().clickable(true)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] UiSelector coerce type: boolean arg: true
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Using: UiSelector[CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements selector:UiSelector[CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (0)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=0, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (1)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=1, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (2)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=2, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (3)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=3, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (4)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=4, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (5)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=5, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (6)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=6, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (7)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=7, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (8)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=8, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (9)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=9, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (10)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=10, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (11)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=11, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (12)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=12, CLICKABLE=true]
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Element[] is null: (13)
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] getElements tmp selector:UiSelector[INSTANCE=13, CLICKABLE=true]
[debug] [AndroidBootstrap] Received command result from bootstrap
[debug] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Returning result: {"status":0,"value":[{"ELEMENT":"2"},{"ELEMENT":"3"},{"ELEMENT":"4"},{"ELEMENT":"5"},{"ELEMENT":"6"},{"ELEMENT":"7"},{"ELEMENT":"8"},{"ELEMENT":"9"},{"ELEMENT":"10"},{"ELEMENT":"11"},{"ELEMENT":"12"},{"ELEMENT":"13"},{"ELEMENT":"14"}]}
[debug] [W3C (ee1567a8)] Responding to client with driver.findElements() result: [{"element-6066-11e4-a52e-4f735466cecf":"2","ELEMENT":"2"},{"element-6066-11e4-a52e-4f735466cecf":"3","ELEMENT":"3"},{"element-6066-11e4-a52e-4f735466cecf":"4","ELEMENT":"4"},{"element-6066-11e4-a52e-4f735466cecf":"5","ELEMENT":"5"},{"element-6066-11e4-a52e-4f735466cecf":"6","ELEMENT":"6"},{"element-6066-11e4-a52e-4f735466cecf":"7","ELEMENT":"7"},{"element-6066-11e4-a52e-4f735466cecf":"8","ELEMENT":"8"},{"element-6066-11e4-a52e-4f735466cecf":"9","ELEMENT":"9"},{"element-6066-11e4-a52e-4f735466cecf":"10","ELEMENT":"10"},{"element-6066-11e4-a52e-4f735466cecf":"11","ELEMENT":"11"},{"element-6066-11e4-a52e-4f735466cecf":"12","ELEMENT":"12"},{"element-6066-11e4-a52e-4f735466cecf":"13","ELEMENT":"13"},{"element-6066-11e4-a52e-4f735466cecf":"14","ELEMENT":"14"}]
[HTTP] <-- POST /wd/hub/session/ee1567a8-d179-433a-870b-61403e6ce2f8/elements 200 5188 ms - 775

因此,如果这可能与 Appium 最新版本本身的问题有关,或者如果我在验证步骤中遗漏了任何其他内容,那么任何人都可以提供帮助?

我没有发现任何关于最新 Appium 版本的问题报告在这里

注意:在使用的不同库及其版本下方。

  • Java客户端版本:7.0.0
  • Selenium Java 客户端:3.141.59
  • Appium 版本:1.11.1
4

1 回答 1

0

由于 Appium 使用 UIAutomator2它自己的客户端-服务器实现,因此使用非常旧的 UI Automator Viewer 工具是无关紧要的,它使用来自 Android SDK 的本机 UIAutomator

合适的检查器是Appium Desktop,它的新版本通常会在新的 Appium 服务器发布后立即发布。它不仅对用户体验友好,而且在下面使用 Appium,并保证您使用它找到的内容将在测试中工作。

于 2019-03-03T22:26:53.540 回答