首页 > 解决方案 > 当我第一次尝试从下拉列表中选择选项时它可以工作,但第二次我收到错误作为陈旧的元素参考:

问题描述

当我第一次尝试从下拉列表中选择选项时它可以工作,但第二次我收到错误,因为过时的元素引用:元素未附加到页面文档我尝试等待仍然得到相同的错误 org.openqa.selenium.StaleElementReferenceException: stale元素引用:元素未附加到页面文档

@Test(priority = 15)
    // To check Edit partner feature by Selecting "Food Type" one by one option
    public void editPartnerBySelectingFoodType() throws InterruptedException {

        // Click on Partners
        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
        driver.findElement(By.xpath("//*[@id=\"main-menu\"]/ul/li[3]/a")).click();

        // Click on All Partners
        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
        driver.findElement(By.xpath("//*[@id=\"main-menu\"]/ul/li[3]/ul/li[2]/a")).click();

        // Search Partner
        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
        driver.findElement(By.xpath("//*[@id=\"bootstrap-data-table_filter\"]/label/input")).sendKeys("NH37 Dhaba");

        // Click on edit button
        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
        driver.findElement(By.xpath("//*[@id=\"bootstrap-data-table\"]/tbody/tr/td[8]/center/a[1]/img")).click();

        String[] foodType = {"Select Food Type", "veg", "veg-non veg", "Pure veg"};

        //Created variable for Food Type dropdown
        WebElement selectFoodType = driver.findElement(By.xpath("//select[@id='foodtype']"));



         Thread.sleep(3000);
        //Created variable for dropdown option
            List<WebElement> optionLinks = driver.findElements(By.xpath("//*[@id=\"foodtype\"]/option"));
            System.out.println(optionLinks.size()); 

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



                String name =optionLinks.get(i).getText();

                //get array list
                List<String> foodTypeOptions = Arrays.asList(foodType);
                if(foodTypeOptions.contains(name)) {

                    System.out.println(name);

                    wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
                    driver.findElements(By.xpath("//*[@id=\"foodtype\"]/option")).get(i).click();
                    Thread.sleep(2000);

                      // Click on Update to update
                    driver.findElement(By.xpath("//*[@id=\"marchant_form\"]/div[22]/button[1]")).click();

                    alert = driver.switchTo().alert();

                    wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
                    if (alert.getText().equals(PartnerAlert2)) {

                        System.out.println(alert.getText());
                        alert.accept();

                        // Click on Partners
                        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
                        driver.findElement(By.xpath("//*[@id=\"main-menu\"]/ul/li[3]/a")).click();

                        // Click on All Partners
                        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
                        driver.findElement(By.xpath("//*[@id=\"main-menu\"]/ul/li[3]/ul/li[2]/a")).click();

                        // Search Partner
                        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
                        driver.findElement(By.xpath("//*[@id=\"bootstrap-data-table_filter\"]/label/input")).sendKeys("NH37 Dhaba");

                        // Click on edit button
                        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
                        driver.findElement(By.xpath("//*[@id=\"bootstrap-data-table\"]/tbody/tr/td[8]/center/a[1]/img")).click();

//                      wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
//                      //Click on Food Type drop down
//                       selectFoodType.click();
//                       
                        wait = new WebDriverWait(driver, 5 /* timeout in seconds */);
                        driver.findElement(By.xpath("//*[@id=\"foodtype\"]")).click();


                    }
                }

            }

标签: javaxmlseleniumtestingselenium-webdriver

解决方案


推荐阅读