我使用TestCafe自动测试特定的功能。在此功能中,用户只能拥有5个条目。该站点上有一个标签,指示剩余的条目数。 当用户已有5个条目时,应删除一个条目以测试添加新条目。 页面的html标记是:
<p class="pull-left text-muted">5 / 5 possible entries</p>
现在我想得到一个确切的字符串,使用JavaScript做一点if / else,当它说5/5个可能的条目时删除一个条目。到目前为止,我有这个测试代码:
await t
.expect(location.pathname).eql(addressPath);
const extractEntries = Selector("p").withText("possible entries");
console.log('[DEBUG], Entries: ' + extractEntries.toString());
var entries = extractEntries.toString().substring(0, 1);
console.log('[DEBUG], character: ' + entries);
当测试运行时,在extractEntries.toString()的输出上输出:
[DEBUG], Entries: function __$$clientFunction$$() {
var testRun = builder.getBoundTestRun() || _testRunTracker2.default.resolveContextTestRun();
var callsite = (0, _getCallsite.getCallsiteForMethod)(builder.callsiteNames.execution);
var args = [];
// OPTIMIZATION: don't leak `arguments` object.
for (var i = 0; i < arguments.length; i++) {
args.push(arguments[i]);
}return builder._executeCommand(args, testRun, callsite);
}
下一行:
[DEBUG], character: f
我已尝试extractEntries.textContent
,extractEntries.innerHTML
,extractEntries.innerText
,但我无法获取文字5 / 5 possible entries
。
访问文本的解决方案是什么?
答案 0 :(得分:2)
TestCafe选择器提供异步属性以获取元素状态值。要获取元素文本,请使用textContent
指令调用await
属性:
const paragraph = Selector("p").withText("possible entries");
const extractEntries = await paragraph.textContent;