在Android中使用Webdriverio,如何通过resource-id选择要素?

时间:2018-08-07 19:07:34

标签: android automated-tests appium android-testing webdriver-io

我是Appium的新手,我想为我的Android应用创建测试,

使用设备监视器中的检查器,我找到了我的元素资源ID:com.appPackage:id / categoryIconImageView。我像波纹管一样使用它。 而且我不知道为什么它不能正常工作?

const wdio = require("webdriverio");

const opts = {
  port: 4723,
  desiredCapabilities: {
    platformName: "Android",
    deviceName: "emulator-5556 device",
    udid: "emulator-5554",
    platformVersion: "8.0.0",
    appPackage: "com.appPackage",
    appActivity: "com.appActivity",
    appWaitActivity: "com.appWaitActivity",
    noReset: "true",
  }
};

const client = wdio.remote(opts);

var s= client.init().element("#com.appPackage:id/categoryIconImageView").click().end();

Appium日志

[HTTP] --> POST /wd/hub/session/028abf5e-43a7-44f6-ab27-9d49e56bab8e/element
[HTTP] {"using":"-android uiautomator","value":"new UiSelector().resourceId('com.opensooq.OpenSooq:id/categoryIconImageView')"}
[debug] [MJSONWP] Calling AppiumDriver.findElement() with args: ["-android uiautomator","new UiSelector().resourceId('com.opensooq.OpenSooq:id/categoryIconImageView')","028abf5e-43a7-44f6-ab27-9d49e56bab8e"]
[debug] [BaseDriver] Valid locator strategies for this request: xpath, id, class name, accessibility id, -android uiautomator
[debug] [BaseDriver] Waiting up to 0 ms for condition
[debug] [AndroidBootstrap] Sending command to android: {"cmd":"action","action":"find","params":{"strategy":"-android uiautomator","selector":"new UiSelector().resourceId('com.opensooq.OpenSooq:id/categoryIconImageView')","context":"","multiple":false}}
[debug] [AndroidBootstrap] Received command result from bootstrap
[debug] [MJSONWP] Matched JSONWP error code 9 to UnknownCommandError
[HTTP] <-- POST /wd/hub/session/028abf5e-43a7-44f6-ab27-9d49e56bab8e/element 500 7 ms - 187

1 个答案:

答案 0 :(得分:0)

我使用的是网络驱动程序版本 ^6.6.3,我可以确认您可以使用:

client.$("id:resource-id-of-the-element");