AgileTesters / forum

Fórum de Discussão do Agile Testers
https://agiletesters.com.br
MIT License
80 stars 2 forks source link

Executar click enquanto visível no Cypress #190

Closed allanocosta closed 3 years ago

allanocosta commented 3 years ago

Olá, aqui estou eu tentando aprender mais sobre o cypress e recorrendo a ajuda de vocês.

No carrinho de compras do site da Electrolux, eu quero clicar em remover o item do carrinho até que o mesmo esteja vazio.

Qual lógica eu posso usar neste caso?

image

rafaelcs commented 3 years ago

@allanocosta tente isso:

deleteAllProducts() {
    cy.get(locator).each(($icon) => {
        const iconSize = $icon.length;
        if (iconSize === 0) {
            return false;
        } else {
            cy.wrap($icon).click({force: true});
            cy.get(locator).click();
        }
    })
}
allanocosta commented 3 years ago

@rafaelcs ele está fazendo o primeiro click e removendo o item, mas depois da erro. Tentei fazendo um do while e tirando o cy.get(locator).click(); , mas dá erro informando que o elemento não está no DOM.

image

allanocosta commented 3 years ago

@rafaelcs consegui fazer desta forma. Tive que adicionar um reload. Parece que o cypress estva tentando clicar sempre no primeiro botão.


clear_cart() {
  cy.get(locator).each($el => {
    let index = $el.length;
    for(let n=0; n < index; n ++){
      cy.xpath(locator).click({force: true});
      cy.reload()
      };
    })
  };