getText结果是0而不是字符串(cucumber / javascript)

时间:2018-01-08 13:50:42

标签: javascript cucumber webdriver-io

我正在尝试从登录表单上的错误消息中断言文本,而我正在使用黄瓜来执行此操作。步骤是:

MySqlCommand cmd2;

cmd2 = dbConStr.CreateCommand();
cmd2.CommandText = "INSERT INTO `user` (Loginname, Email, Algo, Stretch, `Hash`, Salt) VALUES ('@loginname', '@email', '@algo', '@stretch','@hash', '@salt');";

cmd2.Parameters.Add("@loginname", MySqlDbType.VarChar).Value = loginname;
cmd2.Parameters.Add("@email", MySqlDbType.VarChar).Value = email;
cmd2.Parameters.Add("@algo", MySqlDbType.VarChar).Value = algo;
cmd2.Parameters.Add("@stretch", MySqlDbType.VarChar).Value = Convert.ToInt32(stretch);
cmd2.Parameters.Add("@hash", MySqlDbType.VarChar).Value = hash;
cmd2.Parameters.Add("@salt", MySqlDbType.VarChar).Value = salt;

MySqlDataReader r2 = cmd.ExecuteReader();

while (r2.Read())
{ }

r2.Close();

这再次使用:

And  I expect that element "li.error" contains the text "Your username and password didn't match. Please try again."

这又是在使用:

    Then(
    /^I expect that (button|element) "([^"]*)?"( not)* contains any text$/,
    checkContainsAnyText

};

我得到的错误信息是:

module.exports = (elementType, element, falseCase, expectedText) => {

let command = 'getValue';

if (
    elementType === 'button' ||
    browser.getAttribute(element, 'value') === null
) {
    command = 'getText';
}

/**
 * False case
 * @type {Boolean}
 */
let boolFalseCase;

/**
 * The expected text
 * @type {String}
 */
let stringExpectedText = expectedText;

/**
 * The text of the element
 * @type {String}
 */
const text = browser[command](element);
console.log(text);

if (typeof expectedText === 'undefined') {
    stringExpectedText = falseCase;
    boolFalseCase = false;
} else {
    boolFalseCase = (falseCase === ' not');
}

if (boolFalseCase) {
    expect(text).to.not.contain(stringExpectedText);
} else {
    expect(text).to.contain(stringExpectedText);
}

页面上的HTML是:

expected '0' to include 'Your username and password didn\'t match. Please try again.'

我无法弄清楚为什么这不起作用,我在相同测试的不同部分使用相同的步骤(以及无数其他测试功能)断言H1元素及其包含的文本,这就像魅力。

如您所见,我添加了一个console.log(文本),以显示使用此测试步骤时找到的文本。在其他步骤中,它向我显示找到的正确文本,但对于此部分,它只返回0

0 个答案:

没有答案