对来自测试外部文件的页面标题进行断言
Put an assertion on page title that is coming from a file outside the test
我想知道是否有人可以提供帮助。我有一个名为 Titles.js 的文件,它打印当前页面标题。我有另一个 AssertTitle.js 文件,我在其中从 Titles.js 文件获取页面标题,然后尝试声明该标题。两个文件的代码如下所示。
Titles.js 文件
module.exports = {
pageTitle: function() {
let title;
cy.get('h1').then(function($el) {
cy.wrap($el);
title = $el.text();
console.log(title);
});
}
}
AssertTitle.js 文件
const titles = require('./Titles')
describe('testing titles', () => {
it('Print title', () => {
cy.visit("http://www.qaclickacademy.com/practice.php");
titles.pageTitle();
expect(title).be.eq("Practice Page");
});
})
断言失败,据我所知,因为它找不到标题。所以我正在寻找一些关于如何使这个断言起作用的建议或解决方法。
我假设断言失败是因为 title
没有在 AssertTitle.js
中定义。从我的角度来看,您的代码没有遵循 Cypress best practices。
使用 Titles.js
的原因是什么?验证您的 h1
非常简单:
it('validate h1', () => {
cy.visit("http://www.qaclickacademy.com/practice.php")
cy.get('h1').should('have.text', 'Practice Page')
})
如果您需要重用某些功能,请查看custom commands。
我设法通过将 "user" 替换为 "userName" 并在 cypress.json 文件中添加 "instanceName" 来解决此问题。 Cypress.json 如下所示:
"env": {
"db": { "userName": "", "password": "", "server": "localhost", "port": 1433,
"type": "mssql",
"options": {
"instanceName": "",
"database": "",
"encrypt": true,
"rowCollectionOnRequestCompletion": true
}
}
}
我想知道是否有人可以提供帮助。我有一个名为 Titles.js 的文件,它打印当前页面标题。我有另一个 AssertTitle.js 文件,我在其中从 Titles.js 文件获取页面标题,然后尝试声明该标题。两个文件的代码如下所示。
Titles.js 文件
module.exports = {
pageTitle: function() {
let title;
cy.get('h1').then(function($el) {
cy.wrap($el);
title = $el.text();
console.log(title);
});
}
}
AssertTitle.js 文件
const titles = require('./Titles')
describe('testing titles', () => {
it('Print title', () => {
cy.visit("http://www.qaclickacademy.com/practice.php");
titles.pageTitle();
expect(title).be.eq("Practice Page");
});
})
断言失败,据我所知,因为它找不到标题。所以我正在寻找一些关于如何使这个断言起作用的建议或解决方法。
我假设断言失败是因为 title
没有在 AssertTitle.js
中定义。从我的角度来看,您的代码没有遵循 Cypress best practices。
使用 Titles.js
的原因是什么?验证您的 h1
非常简单:
it('validate h1', () => {
cy.visit("http://www.qaclickacademy.com/practice.php")
cy.get('h1').should('have.text', 'Practice Page')
})
如果您需要重用某些功能,请查看custom commands。
我设法通过将 "user" 替换为 "userName" 并在 cypress.json 文件中添加 "instanceName" 来解决此问题。 Cypress.json 如下所示:
"env": {
"db": { "userName": "", "password": "", "server": "localhost", "port": 1433,
"type": "mssql",
"options": {
"instanceName": "",
"database": "",
"encrypt": true,
"rowCollectionOnRequestCompletion": true
}
}
}