Я запускаю транспортир в приложении ionic (4) angular (7), которое может запускать тесты с помощью appium.
Тест у меня работает нормально, когда он пытается найти элементы с помощью CSS, но не удается, когдапоиск по идентификатору.
Я получаю
NoSuchElementError: No element found using locator: By(css selector, *[id="login-button"])
Тем не менее, тест работает нормально в браузере без cordova / android, но я заметил, что все идентификаторы отсутствуют в HTML-коде приложения cordova / android
, что хорошо в примечании браузера (не приложения): id="login-button"
Я пытался добавить
var EC = protractor.ExpectedConditions;
browser.wait(EC.presenceOf(button), 10000)
, но браузер ждет вечно.
Например, в моем HTML
<ion-button id="login-button" class="login-btn" (click)="login()">LOGIN</ion-button>
Затем в тесте
const button = await element(by.id('login-button'))
button.click();
Я ожидаю, что тест нажмет кнопку и перейдет к следующей странице, но тест не пройден только на Android.
Мне нужно иметь возможность искать / находить по идентификаторам, потому чтоиногда я динамически генерирую идентификаторы на основе ngFor
и т. д. Он может найти все остальные элементы по CSS, но не по идентификатору.