expo / detox-expo-helpers

44 stars 34 forks source link

Cant find element by testID in IOS #25

Open Kristijan-Karanfiloski opened 9 months ago

Kristijan-Karanfiloski commented 9 months ago

I have a very complex app that I'm starting to test at the moment I'm testing the dev code the app is made with EXPO and at lunching the app I have the console debugger I figured out how to close that but now I'm using test id on an input and my test is failing I need some help

This is the original text input

THIS IS MY TEST import { device, element, by, waitFor } from 'detox'; describe('player app Activation screen', () => { beforeAll(async () => { //new instance makes to close the app and start it again await device.launchApp({ newInstance: true }); //{ // newInstance: true // } await device.openURL({ url: `exp+next11-reaxt-native-v2://expo-development-client/?url=${encodeURIComponent( `http://localhost:8081` )}` }); }); beforeEach(async () => { // await device.reloadReactNative(); }); it('set up for the development console ', async () => { await waitFor(element(by.text('Got It'))) .toBeVisible() .withTimeout(3000); await element(by.text('Got It')).tap(); await element(by.text('Connected to:')).swipe('down'); }); it('should have a title Welcome', async () => { await expect(element(by.text('Welcome!'))).toBeVisible(); }); const typedText = '45689'; it('should have an input activation code and accept input', async () => { await element(by.id('emailField')).typeText('irem@test.com'); }); }); THIS IS THE ERROR IM GETTING IN MY CONSOLE e2e/playerAppLoginScreen.test.js (37.985 s) player app Activation screen ✓ set up for the development console (14812 ms) ✓ should have a title Welcome (334 ms) ✕ should have an input activation code and accept input (187 ms) ● player app Activation screen › should have an input activation code and accept input Test Failed: No elements found for “MATCHER(id == “emailField”)” HINT: To print view hierarchy on failed actions/matches, use log-level verbose or higher. 56 | // .toBeVisible() 57 | // .withTimeout(2000); > 58 | await element(by.id('emailField')).typeText('irem@test.com'); | ^ 59 | 60 | // const input = element(by.id('input')); 61 | // await input.tap(); at Object.typeText (e2e/playerAppLoginScreen.test.js:58:40) at asyncGeneratorStep (node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24) at _next (node_modules/@babel/runtime/helpers/asyncToGenerator.js:22:9) at node_modules/@babel/runtime/helpers/asyncToGenerator.js:27:7 at Object. (node_modules/@babel/runtime/helpers/asyncToGenerator.js:19:12) Test Suites: 1 failed, 1 total Tests: 1 failed, 2 passed, 3 total Snapshots: 0 total Time: 38.583 s, estimated 40 s Ran all test suites. 15:58:26.238 detox[24733] E Command failed with exit code = 1: jest --config e2e/jest.config.js