Selenium Java - ошибки множественных исключений с try-catch - PullRequest
0 голосов
/ 10 октября 2019

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

Я исправляю в одном месте, затем получаю в другом месте

public class TryCatch {

public static void main(String[] args) throws InterruptedException {
    // TODO Auto-generated method stub


    System.setProperty("webdriver.chrome.driver", "C:\\Users\\llevin\\Desktop\\Web_driver\\chromedriver.exe");
    WebDriver driver=new ChromeDriver();
    driver.manage().window().maximize();
    driver.get("https://portal.caarewards.ca/sco/");

    WebDriverWait w = new WebDriverWait(driver, 20);




    List <WebElement> Online=driver.findElements(By.xpath("//ul[@class='carousel-online-click ux-row-slider js-flickity slider-nav-small slider-nav-reveal slider-nav-push large-block-grid-5 small-block-grid-2 flickity-enabled is-draggable']//div[@class='flickity-viewport non-featured-slider']/div/child::li"));
    WebElement button1= w.until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("/html[1]/body[1]/div[12]/div[2]/div[1]/div[12]/div[2]/div[1]/div[1]/div[1]/ul[1]/button[1]"))));   
    String xpathOffers="//ul[@class='carousel-online-click ux-row-slider js-flickity slider-nav-small slider-nav-reveal slider-nav-push large-block-grid-5 small-block-grid-2 flickity-enabled is-draggable']//div[@class='flickity-viewport non-featured-slider']/div/child::li";
    String xpathbutton="/html[1]/body[1]/div[12]/div[2]/div[1]/div[12]/div[2]/div[1]/div[1]/div[1]/ul[1]/button[1]";


    int x=  Online.size();
    for(int i=0; i<Online.size();i++)
    {

        try
        {
            Online=driver.findElements(By.xpath("//ul[@class='carousel-online-click ux-row-slider js-flickity slider-nav-small slider-nav-reveal slider-nav-push large-block-grid-5 small-block-grid-2 flickity-enabled is-draggable']//div[@class='flickity-viewport non-featured-slider']/div/child::li"));
            Online.get(i).click();
        }catch(StaleElementReferenceException | ElementNotInteractableException x2)
        {
            Thread.sleep(500);
            w.until(ExpectedConditions.refreshed(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath(xpathOffers))));
            w.until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//ul[@class='carousel-online-click ux-row-slider js-flickity slider-nav-small slider-nav-reveal slider-nav-push large-block-grid-5 small-block-grid-2 flickity-enabled is-draggable']//div[@class='flickity-viewport non-featured-slider']/div/child::li")));
            Online=driver.findElements(By.xpath("//ul[@class='carousel-online-click ux-row-slider js-flickity slider-nav-small slider-nav-reveal slider-nav-push large-block-grid-5 small-block-grid-2 flickity-enabled is-draggable']//div[@class='flickity-viewport non-featured-slider']/div/child::li"));
            Online.get(i).click();
        }/*catch(ElementNotInteractableException x1)
        {
            w.until(ExpectedConditions.refreshed(ExpectedConditions.elementToBeClickable(By.xpath(xpathOffers))));
            Online=driver.findElements(By.xpath("//ul[@class='carousel-online-click ux-row-slider js-flickity slider-nav-small slider-nav-reveal slider-nav-push large-block-grid-5 small-block-grid-2 flickity-enabled is-draggable']//div[@class='flickity-viewport non-featured-slider']/div/child::li"));
            Online.get(i).click(); 
        }*/


        System.out.println(i + " of " + x);
        driver.navigate().back();
        Thread.sleep(3000);

        try
        {
            button1.click();
        }catch(StaleElementReferenceException  e)
        {
            w.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("/html[1]/body[1]/div[12]/div[2]/div[1]/div[12]/div[2]/div[1]/div[1]/div[1]/ul[1]/button[1]")));
            //driver.findElement(By.xpath("/html[1]/body[1]/div[12]/div[2]/div[1]/div[12]/div[2]/div[1]/div[1]/div[1]/ul[1]/button[1]"));
            button1.click();
        }catch(ElementNotInteractableException e1)
        {
            w.until(ExpectedConditions.refreshed(ExpectedConditions.elementToBeClickable(By.xpath(xpathbutton))));
            button1.click(); 
        }





    }



}

}

...