我正在构建一个React应用,并使用TestCafe编写功能测试。这是我的测试脚本:
"functional-tests": "testcafe chrome src/functional-tests/ --app 'yarn start'",
这些测试通过。但是,如果我尝试以无头模式运行它们:
"functional-tests": "testcafe 'chrome:headless' src/functional-tests/ --app 'yarn start'",
它们失败,并出现以下错误。
1) Cannot obtain information about the node because the specified
selector does not match any node in the DOM tree.
如果我在单独的终端中手动运行yarn start
(不使用--app
标志),则无头测试通过。
如何使用--app
标志使无头测试通过?我需要在CI / CD脚本中运行功能测试,这就是为什么我需要一个命令来启动服务器并运行测试的原因。
答案 0 :(得分:3)
我通过添加a delay to launch the app使它正常工作。
document.getElementById("move").addEventListener("click", function() {
onLoad(+document.getElementById("get-index").value);
});
function onLoad(index) {
// remove old bookmark
var bookmark = document.getElementById("bookmark-pointer");
if (bookmark) bookmark.remove();
var textNode;
// Loop through all the text nodes and sum up their lengths, once the sum is bigger than the index, get that node
Array.prototype.some.call(document.querySelectorAll("#article *"), function(dom) {
return textNode = Array.prototype.find.call(dom.childNodes, function(node) {
if (node.nodeType !== 3) return false;
if (index >= node.textContent.length) return index -= node.textContent.length, false;
return true;
});
});
if (!textNode) throw Error("Index out of bounds");
scrollTo(0, textNode.parentElement.offsetTop);
}