量角器 - 检查输入字段是否有文本
Protractor - Checking if input field has text
我正在编写一个简单的量角器测试,旨在检查单击按钮后某个输入标签是否包含文本。我已经尝试了一些东西,我目前正在尝试使用 protractor.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>
不应该更像:
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);
})
});
只是为了改进@maurycy 的回答。这种特殊情况有一个 built-in Expected Condition:
var EC = protractor.ExpectedConditions;
browser.wait(EC.textToBePresentInElementValue(status, 'C'), 5000)
我正在用这个
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');});
我正在编写一个简单的量角器测试,旨在检查单击按钮后某个输入标签是否包含文本。我已经尝试了一些东西,我目前正在尝试使用 protractor.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>
不应该更像:
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);
})
});
只是为了改进@maurycy 的回答。这种特殊情况有一个 built-in Expected Condition:
var EC = protractor.ExpectedConditions;
browser.wait(EC.textToBePresentInElementValue(status, 'C'), 5000)
我正在用这个
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');});