我需要检查一个网页的标题是否包含“主页”。
我尝试下面的browser.expect.element('title').text.to.contain('Homepage');,但是元素title总是空的。
任何其他元素都可以工作,但title的行为似乎不同。如何检查子字符串?
示例
作品:
browser
.url('https://stackoverflow.com')
.waitForElementVisible('body', 2000)
.assert.title('Stack Overflow - Where Developers Learn, Share, & Build Careers');不管用:
browser
.url('https://stackoverflow.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');
似乎只有可见的元素才能被测试,所以我不知道如何检查隐藏的东西。
发布于 2017-09-20 12:33:53
硒只与可见元素交互。.
这样做是可行的:
browser.getTitle(function(title) {
this.assert.ok(title.includes("Homepage"));
});发布于 2020-06-05 08:41:14
似乎夜报中增加了标题方法。
使用断言,您可以检查整个标题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也是可用的,甚至regexp检查browser.expect.title().to.match(/value/);。
发布于 2020-06-05 18:00:22
我们已经创建了泛型命令,可以使用该命令,认为应用程序在()之前将等待超时设置,然后才会失败断言
exports.command = function waitForTitleContains(pageTitle) {
this.expect
.title().to.contain(pageTitle)
.before(); //defaults to waitForConditionTimeout from nightwatch.conf
};https://stackoverflow.com/questions/46304441
复制相似问题