Я только начинаю экспериментировать с объектными моделями страниц, используя Protractor в неугловом приложении. Я не новичок, но далеко не эксперт, так что простите меня, если я ошибаюсь. Я исследовал и пробовал предложения в течение нескольких дней без везения. У меня есть этот элемент-
<input type="text" class="form-control" name="form_component_data[AgentsSettings][agent][chat_welcome_msg]" id="agentssettings-agent-chat_welcome_msg" value="How can I help">
В моем POM у меня есть
var txtWelcomemessage = element(by.css("input[name='form_component_data[AgentsSettings][agent][chat_welcome_msg]']"));
this.clearWelcomemessage = function(){
txtWelcomemessage.clear();
};
this.clearWelcomemessage = function(){
txtWelcomemessage.clear();
};
this.setWelcomemessage = function(){
txtWelcomemessage.sendKeys();
};
В моем тестовом сценарии у меня есть
settings.clearWelcomemessage();
browser.sleep('5000');
settings.setWelcomemessage('Hey, Hey, Hey');
browser.sleep('5000');
Очистить сообщение работает, я вижу курсор в поле после очистки сообщения, но отправить ключи ничего не делает и ошибок нет.
Однако, когда я ввожу приведенный ниже код непосредственно в тестовый скрипт, сообщение исчезает, а клавиши отправки работают отлично.
driver.findElement(by.css("input[name='form_component_data[AgentsSettings][agent]
[chat_welcome_msg]']")).click();
browser.sleep('3500')
driver.findElement(by.css("input[name='form_component_data[AgentsSettings][agent]
[chat_welcome_msg]']")).sendKeys('Hey, Hey, Hey');
Это третье поле, с которым я пока работаю в приложении. Первые два поля работают с POM без проблем. Я не уверен, что отличается об этом. Я могу использовать это как обходной путь, но мне просто интересно, что мне не хватает в объекте страницы.
await
выполняете функции? settings.clearWelcomemessage() и browser.sleep() равныasync
. Пожалуйста, попробуйте добавить операторы console.log() между каждым действием и проверьте, действительно ли работают сны. - person Silvan Bregy   schedule 08.07.2021