Невозможно щелкнуть по одному подарку в карусели изображений с селеном - PullRequest
0 голосов
/ 28 января 2020

Я не могу щелкнуть изображения, представленные в карусели ниже, как показано на снимке ниже. Я много пробовал, но потерпел неудачу, хотя мне удалось перейти к другим изображениям, нажав правую кнопку со стрелкой. Карусель изображений присутствует ниже текста заголовка «Рекомендуемые автомобили» (на веб-сайте), который имеет кнопки навигации слева и справа. enter image description here Ссылка на сайт: https://st-usedtrucks.ryder.com/used-trucks

Ниже приведен один из подходов, которые я пробовал, и код ниже. Пожалуйста, мне нужна ваша помощь по этому вопросу в ближайшее время.

public void click_Image_Carousel_To_Open_ProductDetailsPage() throws InterruptedException
{ 
    JavascriptExecutor js = (JavascriptExecutor) driver;        
    js.executeScript("arguments[0].scrollIntoView();", driver.findElement(By.xpath("//h2[contains(text(),'FEATURED VEHICLES')]")));


     WebElement ele1= null;
     String image_link = null;
     List<WebElement> image_Carousel_Links_list  = driver.findElements(By.xpath("(//div[@class='photo']/a)"));
     System.out.println("Size :"+image_Carousel_Links_list.size());

     WebElement  image_Carousel_Next_Btn =  driver.findElement(By.xpath("//BUTTON[@class='slick-next slick-arrow'][text()='Next']"));

     for(int i=1;i<image_Carousel_Links_list.size();i++)
     {
         System.out.println(+i+")Image links :"+driver.findElement(By.xpath("(//div[@class='photo']/a)["+i+"]")).getAttribute("href"));

         System.out.println(" Element : (//div[@class='photo']/a)["+i+"]");

         ele1=driver.findElement(By.xpath("(//div[@class='photo']/a)["+i+"]"));

         //this for loop to rediscover the elements to avoid stale element exception
          for(int k=0;k<500;k++)
          {
              image_Carousel_Links_list  = driver.findElements(By.xpath("(//div[@class='photo']/a)"));

              if(driver.findElement(By.xpath("(//div[@class='photo']/a)["+i+"]")).isDisplayed())
              {
                  ele1=driver.findElement(By.xpath("(//div[@class='photo']/a)["+i+"]"));
                  break;
              }

              click_ImageCarousel_NextButton(image_Carousel_Next_Btn);
              Thread.sleep(300);
          }

         if(ele1.isDisplayed())
         {               
             ele1.click();
             System.out.println(i+") Clicked on the Image present in Image Carousel :" +ele1.getAttribute("href"));
             Thread.sleep(3000);
             driver.navigate().back();
             Thread.sleep(4000);
         }
         else
         {
           System.out.println(" Image Not found in Image Carousel");
         }

     }

}

private void click_ImageCarousel_NextButton(WebElement image_Carousel_Next_Btn) {

    image_Carousel_Next_Btn.click();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...