Селен не зацикливает все учетные данные, дает исключение в потоке "main" org.openqa.selenium.NoSuchElementException: - PullRequest
0 голосов
/ 04 июля 2019

, когда я пытаюсь автоматизировать веб-сайт с использованием структуры цикла, первая итерация запускается, но вторая итерация не выполняется и выдает ошибку .NoSuchElementException

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

public static void TestTitle () создает исключение {

    WebDriverManager.edgedriver().setup();
    WebDriver driver = new EdgeDriver();

    //user credentials in array
    String credentials[][] = {{"user39", "UserUser123"}, {"storemanager77", "UserUser123"}, {"salesmanager140", "UserUser123"}};

    driver.get("http://qa2.*******.com/user/login");

    for (int i = 0; i < credentials.length; i++) {
            //enters the credential to the website by pulling from the 2d array and logins to the app
            driver.findElement(By.name("prependedInput")).sendKeys(credentials[i][0]);
            driver.findElement(By.id("prependedInput2")).sendKeys(credentials[i][1]);
            driver.findElement(By.id("_submit")).click();
            Thread.sleep(4000);
            //finds the dropdown menu and goes to the configuration
            driver.findElement(By.xpath("//*[@id=\"user-menu\"]/a")).click();
            Thread.sleep(4000);
            driver.findElement(By.linkText("My Configuration")).click();
            Thread.sleep(4000);
            driver.navigate().refresh();

            //gets the page title
            String pageTitle = driver.getTitle();
           //gets the profile name
            String profileTitle=driver.findElement(By.xpath("//a[@href='javascript: void(0);']")).getText();
            //compare page title and profile name
            if(pageTitle.contains(profileTitle)){
                System.out.println("Passed");
            } else {
                System.out.println("Failed");
            }

            Thread.sleep(2000);
            //goes to the profile and logs out from the app
            driver.findElement(By.xpath("//*[@id=\"user-menu\"]/a")).click();
            driver.findElement(By.linkText("Logout")).click();
            //clears the login credentials from previous login
            driver.findElement(By.id("prependedInput")).clear();
            driver.findElement(By.id("prependedInput2")).clear();
            Thread.sleep(2000);

    }
}

Я ожидаю, что мой цикл сработает, войдет на веб-сайт, введя учетные данные на веб-сайт, чем выйдите из системы, а затем введите следующие учетные данные на тот же веб-сайт и выйдите из системы

...