Я занимаюсь разработкой приложения с помощью React Native и испытываю трудности в автоматизации тестирования с помощью инфраструктуры Appium.
Я никогда не использовал этот инструмент, и моя первая цель - проверить, существует ли следующий элемент на главном экране. PS: элемент существует.
<TouchableOpacity
testID="test-login"
accessibilityLabel="test-login"
>
<Text>test login</Text>
</TouchableOpacity>
В проекте я создал папку test с sample.test. js file
const webdriverio = require('webdriverio');
const androidOptions = {
capabilities: {
browserName: 'Chrome',
allowInsecure: {},
denyInsecure: {},
},
desiredCapabilities: {
browserName: 'Chrome',
path: '/wd/hub',
port: 4723,
platformName: 'Android',
app:
'/Users/xxx/android/app/build/outputs/apk/debug/app-debug.apk',
deviceName: 'xxx', // adb devices
automationName: 'Appium',
appPackage: 'XXX',
launchActivity: 'XXX.MainApplication',
chromeOptions: {w3c: false},
ensureWebviewsHavePages: true,
platformVersion: '8.0.0',
},
};
describe('things', () => {
let client;
before(async () => {
client = await webdriverio.remote(androidOptions);
});
it('test', async () => {
//await client.elementByAccessibilityId('test-login');
//client.elementsByAccessibilityId('test-login');
await client.findElementsByAccessibilityId('test-login');
//let elementsOne = await client.elementsByAccessibilityId('test-login');
//let elementsTwo = await client.elements('id', 'test-login');
//await client.elementByAccessibilityId('test-login').isClickable;
});
after(async () => {
return await client.deleteSession();
});
});
и запустите его с узлом ./node_modules/.bin/mocha.
Вывод будет
things
INFO webdriverio: Initiate new session using the devtools protocol
INFO devtools: Launch Google Chrome with flags: --disable-extensions --disable-background-networking --disable-background-timer-throttling --disable-backgrounding-occluded-windows --disable-sync --metrics-recording-only --disable-default-apps --mute-audio --no-first-run --disable-hang-monitor --disable-prompt-on-repost --disable-client-side-phishing-detection --password-store=basic --use-mock-keychain --disable-component-extensions-with-background-pages --disable-breakpad --disable-dev-shm-usage --disable-ipc-flooding-protection --disable-renderer-backgrounding --enable-features=NetworkService,NetworkServiceInProcess --disable-features=site-per-process,TranslateUI,BlinkGenPropertyTrees --window-position=0,0 --window-size=1200,900
INFO devtools: Connect Puppeteer with browser on port 51345
1) test
✓ should create and destroy Android browser session
INFO devtools: COMMAND deleteSession()
INFO devtools: RESULT null
0 passing (1s)
1 failing
1) things
test:
TypeError: client.findElementsByAccessibilityId is not a function
at Context.it (test/sample.test.js:97:18)
at process.topLevelDomainCallback (domain.js:126:23)
Телефон android с приложение в режиме отладки подключено к компьютеру.
Я попробовал фрагменты об этом, но безуспешно.
Не могли бы вы помочь мне с первым шагом?
Спасибо всем .