(Транспортир). Проверьте, отключен ли вход по клику?
У меня есть два поля ввода: имя пользователя и пароль и кнопка счетчика. Когда я нажимаю на эту кнопку Spinner, эти два поля ввода отключаются, и я перенаправляюсь на другую страницу. Я пишу сквозное тестирование, чтобы проверить, отключены ли эти поля ввода.
element(by.model('username')).sendKeys('rabi');
element(by.model('password')).sendKeys('rabi');
/* click on spin button */
spinBtn = element(by.className('call-to-action'));
spinBtn.click();
/* check if input is disabled */
var loginInput = element(by.id('login-username'));
expect(loginInput.isEnabled()).toBe(false);
Ответы
Ответ 1
Предыдущий пример
expect(loginInput.getAttribute('disabled')).toEqual('disabled');
Не будет работать для проверки того, включено ли что-либо.
Вы должны использовать
expect(loginInput.isEnabled()).toBe([true|false]);
чтобы точно убедиться, что что-то включено/отключено.
Если это не работает для вас, возможно, что-то еще происходит.
Ответ 2
Вы можете использовать метод get get:
expect(loginInput.getAttribute('disabled')).toEqual('disabled');
Ответ 3
Я хочу добавить, что ответ @TaylorRose (получивший наибольшее количество голосов) очень хорош, и благодарю его за это.
// passes when the button does not have 'disabled' attribute
expect($('#saveChangesBtn').isEnabled()).toBe(true);
Однако, когда я попытался запустить это, я получил ошибку:
Error: TSError: ⨯ Unable to compile TypeScript e2e/specs/element.e2e-spec.ts:
Argument of type 'false' is not assignable to parameter of type 'Expected<Promise<boolean>>'.
Есть несколько решений этой проблемы, и вот два из них:
1. Скажите, что вы ожидаете набрать "любой"
expect<any>($('#saveChangesBtn').isEnabled()).toBe(true);
2. Добавьте @types/jasminewd2 в ваш пакет json (и, конечно, запустите 'npm install') (спасибо aktraore @github)
"devDependencies": {
...,
"@types/jasminewd2": "2.0.6",
...
}
И тогда больше не будет ошибок от машинописи, и это решит эту проблему. Версия 2.0.6 Ps является последней на момент написания этого поста, и волшебная версия может отличаться для вашего случая.
Так что это дополнение к ответу с наибольшим количеством голосов, если кто-то здесь имеет эту проблему.