使用 NightwatchJS 测试页面标题
Test page title with NightwatchJS
我需要检查页面标题是否包含 "Homepage"。
我尝试以下
browser.expect.element('title').text.to.contain('Homepage');
但返回时元素 title
总是空的。
任何其他元素都有效,但 title
似乎表现不同。如何检查子字符串?
例子:
作品:
browser
.url('https://whosebug.com')
.waitForElementVisible('body', 2000)
.assert.title('Stack Overflow - Where Developers Learn, Share, & Build Careers');
无效:
browser
.url('https://whosebug.com')
.waitForElementVisible('body', 2000)
.expect.element('title').text.to.contain('Developers');
输出:Expected element <title> text to contain: "Developers" - expected "contain 'Developers'" but got: ""
然而这有效:browser.expect.element('h1').text.to.contain('Learn, Share, Build');
似乎只能测试可见的元素,所以我不确定如何检查隐藏的元素。
硒 only interacts with visible elements.
这个有效:
browser.getTitle(function(title) {
this.assert.ok(title.includes("Homepage"));
});
nightwatch 中似乎添加了标题方法
使用断言,您可以检查整个标题
https://nightwatchjs.org/api/#assert-title
browser.assert.title("Nightwatch.js");
使用expect,可以检查一部分
https://nightwatchjs.org/api/expect/#expect-title-
browser.expect.title().to.contain('value');
startWith
和 endWith
也可用这种方式,甚至正则表达式检查 browser.expect.title().to.match(/value/);
我们已经创建了可以在应用程序中使用的通用命令
before() 将在 assert
失败之前等待超时设置
exports.command = function waitForTitleContains(pageTitle) {
this.expect
.title().to.contain(pageTitle)
.before(); //defaults to waitForConditionTimeout from nightwatch.conf
};
我需要检查页面标题是否包含 "Homepage"。
我尝试以下
browser.expect.element('title').text.to.contain('Homepage');
但返回时元素 title
总是空的。
任何其他元素都有效,但 title
似乎表现不同。如何检查子字符串?
例子:
作品:
browser
.url('https://whosebug.com')
.waitForElementVisible('body', 2000)
.assert.title('Stack Overflow - Where Developers Learn, Share, & Build Careers');
无效:
browser
.url('https://whosebug.com')
.waitForElementVisible('body', 2000)
.expect.element('title').text.to.contain('Developers');
输出:Expected element <title> text to contain: "Developers" - expected "contain 'Developers'" but got: ""
然而这有效:browser.expect.element('h1').text.to.contain('Learn, Share, Build');
似乎只能测试可见的元素,所以我不确定如何检查隐藏的元素。
硒 only interacts with visible elements.
这个有效:
browser.getTitle(function(title) {
this.assert.ok(title.includes("Homepage"));
});
nightwatch 中似乎添加了标题方法
使用断言,您可以检查整个标题
https://nightwatchjs.org/api/#assert-title
browser.assert.title("Nightwatch.js");
使用expect,可以检查一部分
https://nightwatchjs.org/api/expect/#expect-title-
browser.expect.title().to.contain('value');
startWith
和 endWith
也可用这种方式,甚至正则表达式检查 browser.expect.title().to.match(/value/);
我们已经创建了可以在应用程序中使用的通用命令 before() 将在 assert
失败之前等待超时设置exports.command = function waitForTitleContains(pageTitle) {
this.expect
.title().to.contain(pageTitle)
.before(); //defaults to waitForConditionTimeout from nightwatch.conf
};