Javascript 无法使用getVisibleText()获取intern.js中的元素文本
我正在使用Intern.js中functionalSuite数组中的文件编写功能测试 我有一个函数,可以单击URL并检查某些HTML标题元素中的文本。但是,测试运行时,声称0/3测试失败,并且从未单击过url。它只是登录并停留在那里。我不知道我做错了什么 这是正在运行的功能套件Javascript 无法使用getVisibleText()获取intern.js中的元素文本,javascript,intern,Javascript,Intern,我正在使用Intern.js中functionalSuite数组中的文件编写功能测试 我有一个函数,可以单击URL并检查某些HTML标题元素中的文本。但是,测试运行时,声称0/3测试失败,并且从未单击过url。它只是登录并停留在那里。我不知道我做错了什么 这是正在运行的功能套件 define([ 'intern!object', 'intern/chai!assert', 'intern/dojo/node!fs', 'lib/GlobalUtils.js',
define([
'intern!object',
'intern/chai!assert',
'intern/dojo/node!fs',
'lib/GlobalUtils.js',
'headtest/headtest.js'
],
function (registerSuite, assert, fs, GlobalUtils, headtest) {
registerSuite(function () {
var GlobalUtils;
var headtest;
var testdata;
var timeout;
var testcases;
testcases =
{
name: 'App Test - headtest',
'Setup the Environment': function () {
var data = fs.readFileSync('headtest/include/test_data.json', 'utf8');
testdata = JSON.parse(data);
timeout = parseInt(testdata.timeout);
GlobalUtils = new GlobalUtils(this.remote);
headtest = new headtest(this.remote);
},
'Log into App': function () {
this.timeout = parseInt(testdata.timeout) * 3;
return GlobalUtils
.login(testdata.username, testdata.password, testdata.sites.mobo_dev, testdata.loginIdentifier)
.then(function (result) {
assert.ok(result, 'Failed to login.')
});
},
'Check Navigation Headers': function () {
this.timeout = parseInt(testdata.timeout);
var navItems = testdata.navItems;
var wasUnmatched = false;
for (var i = 0; i < navItems.length; i++) {
var result = headtest.check_nav_items(navItems[i], testdata.navHrefHeaderPairMappings);
if (result == false)
wasUnmatched = true;
}
return wasUnmatched;
}
};
return testcases;
});
});
我做错什么了吗?我期望在每个for循环迭代中,测试将单击N个URL并检查是否存在某些文本元素。但是,没有单击URL,也没有进行检查。console.logtext也不打印任何内容。我尝试在then promise之后添加一个额外的错误处理函数,但它仍然没有打印任何内容。结果表明,该网页速度非常慢。代码正在运行
define(function(require) {
function headtest(remote) {
this.remote = remote;
}
headtest.prototype = {
constructor: headtest,
check_nav_items: function(key, navTupleTable) {
var needle = key.toLowerCase();
var href = navTupleTable[needle][0];
var expect = navTupleTable[needle][1];
var xpath = navTupleTable[needle][2];
var navHeader = this.get_nav_header_text(href, xpath, expect);
return navHeader == expect;
},
get_nav_header_text: function(href, xpath, expect) {
return this.remote
.setFindTimeout(5000)
.findByXpath('//div[@class="sidebar_nav"]//a[@href="'+ href +'"]/..').click().end()
.setFindTimeout(5000)
.findByXpath(xpath).getVisibleText()
.then(function(text) {
console.log(text);
assert.strictEqual(text, expect);
//return text;
});
}
};
return headtest;
});