Основываясь на примере того, как требуется заполнить поле формы Как я могу проверить, требует ли элемент использования Protractor в angular2? , я попробовал два способа его кодирования, ниже которых работают.
it('should add a THING name required', function() {
var foo = element(by.model('THING.name'));
expect((foo).getAttribute("required")).toBe("true");
});
или
expect(element(by.model('THING.name')).getAttribute("required")).toBe(true);
За исключением случаев, когда это делается таким образом, также в первую очередь отрицается цель использования объектов страницы.Из объектного файла страницы:
var THINGNameField = element(by.model('THING.name'));
this.addTHINGName = function (THINGName) {
THINGNameField.sendKeys(THINGName);
};
С этим объектом этот код работает в файле спецификации / теста для добавления имени: THINGEditor.addTHINGName ('Test THING title');
но все, что я пытался проверить, требуется имя, либо приводит к невозможности прочитать свойство 'getAttribute' неопределенного, либо появляется ошибка "______ не определено"
Кто-то еще, кто пытался помочь, сказал, что это похоже на что-тоне возвращался правильно в объектном файле страницы, поэтому я изменил его, чтобы получить / установить в классе и создал новый объект в объектном файле страницы.Это улучшило то, что приведенное выше утверждение обнулилось, но это все еще не дает желаемого результата, и приложение, которое я тестирую, имеет много обязательных полей, поэтому мне нужно иметь возможность проверить эти определенные поля (по несколько на форму)являются обязательными, а не только то, что общее «требуется» существует на странице.Теперь мне интересно, если бы я просто отбросил это и утверждал вместо этого, что поле показывает «Имя *» в форме, а затем сделал тест, чтобы убедиться, что кнопка сохранения не активна для этой конкретной формы.На самом деле мне нужно убедиться, что у человека, заполняющего форму, есть визуальный индикатор того, что форма требуется, но также и то, что форма фактически выполняет требование, что может быть двумя разными вещами.Как вы все обычно проверяете, что поля обязательны для заполнения при использовании объектов страницы?