Appium - Driver.source (), показывающий домашнюю страницу Android даже с приложением на экране - PullRequest
0 голосов
/ 21 ноября 2018

Я новичок в Appium, и я пытаюсь заставить его работать в приложении, реагирующем на нативную версию.Я следую этому учебнику , но у меня есть некоторые проблемы.

Я пытаюсь найти элемент с accessibilityLabel="testview", но когда я выполняю код, я не могу найти этот элемент.Итак, я поставил команду console.log(await driver.source());, чтобы увидеть код XML.Даже когда приложение открыто на эмуляторе, я получаю код XML с домашней страницы Android, но не код из моего приложения.

Мой тестовый код:

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 голосов
/ 22 ноября 2018

Я решил эту ошибку, изменив версию используемого 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'
};
...