Selenium Java: я автоматизирую розничный сайт. На целевой странице продукта у нас есть список продуктов и соответствующие цены и кнопки. - PullRequest
0 голосов
/ 29 июня 2018

enter image description here Для каждого продукта у нас есть 2 кнопки. В любой момент будет присутствовать только одна кнопка.

Пример:

Prod 1 No Price button1

Prod 2 Цена button1 button2

Мне нужно нажать на товар с кнопкой 2 и доступной ценой. Пожалуйста, предоставьте решение о том, как пройти через продукты и нажмите на соответствующие кнопки.

    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;
        }
    }
    }

Приведенный выше код идентифицирует кнопку и цену, которая доступна для второго продукта, но нажимает на первый.

1 Ответ

0 голосов
/ 29 июня 2018
/* 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()
    }
  }
}  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...