Je suis nouveau à Cyprès et j'ai un petit problème que je voudrais de l'aide.
J'ai un champ de saisie dans mon application qui me permet d'entrer un nom. Ce nom doit être unique et ne doit pas être identique à un nom existant déjà dans le système.
Je clique actuellement sur ce champ de saisie par:cy.get('input[type="text"].form-control')
Si j'utilise la commande cy.type()
_, cela saisira toujours la même valeur fournie, mais chaque fois que le test fonctionne, je souhaite affecter une valeur différente.
// Fill in some details of a new class to proceed with creation
cy.get('.pull-left > h4').contains('Add a new class')
cy.get('input[type="text"].form-control') // Clicks on the field
// Some code to go here to create a random string and use what was created and
type this into the field above
attend
[.
J'ai créé une seule fonction qui génère la chaîne aléatoire, puis crée une variable pour stocker cette valeur, puis utiliser la valeur dans la logique du reste du test.
function generate_random_string(string_length) {
let random_string = '';
let random_ascii;
for(let i = 0; i < string_length; i++) {
random_ascii = Math.floor((Math.random() * 25) + 97);
random_string += String.fromCharCode(random_ascii)
}
return random_string
}
J'attribue ensuite ceci à une variable ci-dessous:
var random_string = generate_random_string(8)
Ensuite, la sortie extraite de celle-ci et mettez dans le champ en utilisant les commandes simples get
et type
commandes de cyprès:
cy.get('input[type="text"].form-control').type(random_string)
Cela obtient la valeur et les types dans le domaine que je voulais. Je peux aussi "random_string" à nouveau dans n'importe quel test, par exemple, si je souhaite faire des affirmations plus tard dans le test.
example.spec.js
it('timestamp', function() {
cy.task('datenow').then((random) => { cy.log('test' + random)})
})
plugins/index.js
on('task', {
datenow () {
return Date.now()
}
})
Le code ci-dessus générera des chaînes aléatoires