【发布时间】:2021-07-06 20:25:10
【问题描述】:
我刚刚开始在非角度应用程序上使用 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() 语句并检查睡眠是否真的有效.. -
@SilvanBregy 假设我做对了,看起来睡眠正在发生。这是我用的。 settings.clearWelcomemessage(); browser.sleep('5000').then(console.log('Message Cleared')); settings.setWelcomemessage('嘿。我有什么可以帮忙的'); browser.sleep('5000').then(console.log('Welcome Message Entered'));
标签: protractor sendkeys pageobjects