Appium-即使屏幕上有应用程序,Driver.source()仍显示Android主页

时间:2018-11-21 18:16:57

标签: appium appium-android

我是Appium的新手,我正在尝试使其在本机应用程序上运行。我正在关注this tutorial,但遇到了一些问题。

我正在尝试使用accessibilityLabel="testview"查找元素,但是当我执行代码时,找不到此元素。因此,我放置了命令console.log(await driver.source());来查看XML代码。即使在模拟器上打开了应用程序,我仍然可以从Android主页获取XML代码,而不能从我的应用程序获取代码。

我的测试代码是:

import wd from 'wd';

jasmine.DEFAULT_TIMEOUT_INTERVAL = 60000;
const PORT = 4723;
const config = {
  platformName: 'Android',
  deviceName: 'Android Emulator',
  app: './android/app/build/outputs/apk/debug/app-debug.apk', // relative to root of project
  appPackage: 'com.example.android',
  appActivity: 'com.example.MainActivity'
};
const driver = wd.promiseChainRemote('localhost', PORT);

beforeAll(async () => {
  await driver.init(config);
  await driver.sleep(8000); // wait for app to load
})

test('appium renders', async () => {
  console.log(await driver.source());
  expect(await driver.hasElementByAccessibilityId('testview')).toBe(true);
});

有人知道为什么我要从应用程序中获取此XML代码而不是XML代码吗?是否有任何错误的配置?我正在使用Windows,genymotion,Android仿真器和uiautomator。

1 个答案:

答案 0 :(得分:0)

我通过更改所使用的uiautomator的版本解决了该错误。我只是在配置中添加了一行:

const config = {
  platformName: 'Android',
  deviceName: 'Android Emulator',
  app: './android/app/build/outputs/apk/debug/app-debug.apk', // relative to root of project
  appPackage: 'com.example.android',
  appActivity: 'com.example.MainActivity'
  automationName: 'uiautomator2'
};