(Транспортир). Проверьте, отключен ли вход по клику?

У меня есть два поля ввода: имя пользователя и пароль и кнопка счетчика. Когда я нажимаю на эту кнопку 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 является последней на момент написания этого поста, и волшебная версия может отличаться для вашего случая.

Так что это дополнение к ответу с наибольшим количеством голосов, если кто-то здесь имеет эту проблему.