Я начинаю тестировать свое приложение React Native с помощью Appium.У меня есть простой сценарий входа в систему, где я ожидаю, что приложение status
будет 'Logged in'
после ввода и отправки некоторых имени пользователя и пароля.Я запускаю тест на симуляторе iPhone X 12.2.
Однако тест завершается неудачно с этой ошибкой:
Expected: "Logged in"
Received: "status"
Почему-то текстовое значение получено неправильно.Итак, как получить внутренний текст моего элемента?
App.js:
<Text accessibilityLabel="status">{this.state.status}</Text>
appium.test.js:
test('Login success', async() => {
expect(await driver.hasElementByAccessibilityId('username input')).toBe(true)
expect(await driver.hasElementByAccessibilityId('password input')).toBe(true)
expect(await driver.hasElementByAccessibilityId('submit button')).toBe(true)
expect(await driver.hasElementByAccessibilityId('status')).toBe(true)
await driver.elementByAccessibilityId('username input').sendKeys('some_username')
await driver.elementByAccessibilityId('password input').sendKeys('some_password')
await driver.elementByAccessibilityId('submit button').click()
const result = await driver.elementByAccessibilityId('status').text()
console.log(result) // 'status' WHY???
// the test runs fine until here:
expect(result).toBe('Logged in')
})
Все, что я могу думать, это то, что text()
- это не та функция, которая нужна для получения внутреннего текста моего элемента, но это все, что я вижу в документах или учебных пособиях, которым я следовал ...