Hay muchos tutoriales, pero no puedo entenderlo... Así que estoy practicando en https://www.saucedemo.com/inventory.html y tratando de obtener la lista de elementos y compararla con una lista, para mira que esta bien. Hará lo mismo después de clasificar de Z a A, y lo mismo con el precio. Pero soy bastante novato y principiante y realmente estoy luchando. Hasta ahora logré obtener la lista y revertirla (?)
const array1 = $$('.inventory_item_name').forEach(element => { console.log(element.getText()) }); const array2 = $$('.inventory_item_name').reverse().forEach(element => { console.log(element.getText()) });Si trato de compararlos con === será cierto:/ lo estoy intentando en VScode -Js - webdriverIO - Mocha
Encontré un gran tutorial en udemy
const itemNameLocators = $$('.inventory_item_name'); //gets the item names const originalItemNameText = itemNameLocators.map(item => item.getText()); //maps the item names and covnerts to text (?) console.log(originalItemNameText) //prints the value- item names- in an array const itemNameCopy = originalItemNameText.slice() //creates a copy of the item names - not to change the original array const sortedItemNames = itemNameCopy.reverse() //sorts the copied list - to match the websites copy console.log(sortedItemNames) //logs it - for personal use only expectChai(originalItemNameText).to.eql(sortedItemNames) //compares the 2 array texts donde agregué .reverse() , en este caso la prueba fallará. sin el .Slice estaba pasando cualquiera que fueran los valores y en qué orden. allí estará .sort() , y en el caso de prueba en el que ordenaré la página en sí, lo cambiaré en consecuencia. Lo mismo se puede hacer con el precio.
Por supuesto, había una manera más fácil, solo para verificar el nombre del primer elemento = x y al ordenar verificar el nombre nuevamente para contener el último elemento, pero eso era demasiado básico.