Selenium Java: J'automatise une vente au détail site.In Page de destination du produit, nous avons la liste des produits et des prix et des boutons associés


entrez la description de l'image iciPour chaque produit, nous avons 2 boutons. À tout moment, un seul bouton serait présent.

Exemple:

Prod 1 Pas de prix button1

Prod 2 Prix button1 bouton2

Je dois cliquer sur un produit avec le bouton 2 et le prix disponible. Veuillez fournir une solution sur la façon de parcourir les produits et cliquez sur les boutons associés.

    List<WebElement> Prod = driver.findElements(ProdDesc);
    List<WebElement> price = driver.findElements(prodPrice);
    List<WebElement> btn = driver.findElements(Button2);

    for (int i = 0;i<Prod.size();i++){
    if(price.get(i).isDisplayed())
    {
        if(btn .get(i).isDisplayed())
        {
        Prod.get(i).click();
        break;
        }
    }
    }

Le code ci-dessus identifie le bouton et prix qui est disponible sur le deuxième produit mais clique sur le premier.

Author: testergirl, 2018-06-29

1 answers

/* Find list of available products */
List<WebElement> products = driver.findElements(By.cssSelector(PRODUCT_CSS);

/* Traverse the list */
for (int i = 0; i < products.size(); i++) {

  /* Get the price of a product, might throw an exception if price is absent */
  WebElement price = products.get(i).findElement(By.cssSelector(PRICE_CSS);

  if (price.isDisplayed()) {
    /* Get the list of buttons inside the product element */
    List <WebElement> btnList = driver.findElements(By.cssSelector(BTN_CSS));

    /* Make sure there are two buttons */  
    if (btnList.size() == 2 && btnList.get(1).isClickable()) {
      /* Click the second button */
      btnList.get(1).click()
    }
  }
}  
 0
Author: Eugene, 2018-06-29 11:32:51