量角器-检查输入字段是否有文本
Protractor - Checking if input field has text
我正在编写一个简单的量角器测试,用于检查单击按钮后某个输入标记是否包含文本。我已经尝试了一些事情,我目前正在尝试使用量角器。ExpectedConditions检查它是否包含任何文本。下面是我的代码:
it("should click submit", function() {
var EC = protractor.ExpectedConditions;
var status = element(by.id('status'));
$("#btnSubmitQuery").click();
var condition = EC.textToBePresentInElement(status, 'C');
browser.wait(condition, 8000, "Text is still not present");
status.getText().then(function (text) {
console.log(text);
});
});
一旦单击btnSubmitQuery,就会对服务器进行REST调用,但问题是我永远无法获得状态的任何值。当我运行这段代码时发生的事情是,浏览器只等待8秒然后关闭,即使我可以看到元素中的文本。控制台不会记录任何内容。什么好主意吗?
编辑:我正在检查的html元素看起来像这样:
<td><input id="status" type="text" class="form-control" placeholder="PaxStatus ..." value="{{paxInformation.status}}"ng-readonly="true"></td>
只是为了改进@maurycy的答案。对于这种特殊情况,有一个内置的预期条件:
var EC = protractor.ExpectedConditions;
browser.wait(EC.textToBePresentInElementValue(status, 'C'), 5000)
不应该更像这样吗:
condition = function () {
return status.getAttribute('value').then(function (value) {
return value.length > 0
})
};
browser.wait(condition, 8000, "Text is still not present").then(function () {
status.getAttribute('value').then(function (text) {
console.log(text);
})
});
我用这个
var EC = protractor.ExpectedConditions;
var txt = browser.wait(EC.textToBePresentInElementValue(status, 'C'), 5000)
return browser.wait(txt, 5000).catch(() => {
throw new Error('Text is still not presentt');});
相关文章:
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 如何检查链接是否有文本,并根据文本值评估条件-Jquery/JS
- 是否可以自动拉取“随机”;标签“;从一长串文本中提取
- 是否<asp:文本框>有一个onFocusLost事件
- 尝试使用Javascript正则表达式来获取“&"分隔文本,无论它是否's是最后一个值
- 检查文本区域是否为空总是返回false
- Bigcommerce-是否可以在函数执行后更改文本
- 在动态crm 2011中,右键单击已完成活动的只读文本时,您是否出现错误
- 我能从“;输入“;事件是否有更好的方法来跟踪文本更改
- HTML.如何检查用户是否在表单中输入了文本
- 检查所选文本是否在给定的CSS类中
- 如何更改文本区域的颜色's文本,具体取决于它是否为占位符
- CKEditor-如何在事件中检查文本区域是否为空
- 如何检查浏览器中是否支持文本溢出:省略号
- createjs:是否可以对文本进行辩护
- 使用 javascript 检查文本框是否以 92 开头
- 检查选择器在jQuery中是否包含文本(即不是媒体)
- 使用 Javascript 检查文本区域值是否为数字
- 是否可以在提交之前从文本框中检索值