我正在使用Cypress测试一个表单。我需要在测试期间弹出一个窗口,以便在表单中输入一个输入域,因为它应该是唯一的值,并且每次运行测试时它都应该不同。如何在Cypress中为此编写测试脚本?请帮帮我。谢谢。
发布于 2019-05-17 06:34:59
我假设,您可能有一个表单,每次调用表单时都需要在文本字段中输入一个unique
编号。
下面javascript每次传递一个唯一的数字给一个类型,只需将const value
传递到const uniqueValue
字段;
describe('Test for unique value', () => {
it('Receive unique value always in text input', () => {
const uniqueValue = (new Date()).getTime() + Math.trunc(365 * Math.random());
console.log(uniqueValue);
cy.wait(2000)
cy.visit('some_url_here')
cy.get('#yourtextinput').type(uniqueValue);
})
另一种方法是单独创建一个javascript函数,并将其分配到cypress测试中的const myUnique = getUniquevalue();
中。在cypress中的类型命令中传递此myUnique
。
function getUniquevalue(){
const uniqueValue = (new Date()).getTime() + Math.trunc(365 * Math.random());
return uniqueValue;
}
请参见以下控制台输出:
发布于 2019-05-16 21:31:28
据我所知,您只想在每次执行测试时输入一个唯一的值,而不是手动编辑硬编码的值。您可以通过打开一些其他表单(在您的情况下弹出)作为解决方法来实现此目的。那么,您应该在您的代码中为此生成一个UIID。
根据RFC4122,UUID(全球唯一标识符),也称为GUID(全局唯一标识符),是具有某种唯一性保证的标识符( IDentifier)。
实现这一点的最简单方法是导入npm包并使用它。有很多这样的包,你可以搜索一下从中挑选一个。其中之一是changejs (还包括许多其他特性)。查看此https://chancejs.com/miscellaneous/guid.html
https://stackoverflow.com/questions/53274742
复制相似问题