Как использовать массив для метода в цикле - PullRequest
0 голосов
/ 22 июня 2019

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

public class LogIn extends ReusableMethod {

// here is my lists of URLS

@Test void test()throws Exception {

     String[] Urls;
     Urls = new String[3];

     Urls[0] = "site.com/us/en";
     Urls[1] = "site.com/ca/en";
     Urls[2] = "site.com/au/en";


     for (int i=0; i<Urls.length; i++) {
         openbrowser(Urls[i]);

     //openbrowser is calling a reusable method to open a browser and go to 
     each //URL and the test loops through the URLs defined above



  //------- sign in from the sign in page--------//
     RegisteredSignIn();

     CheckTitle();

// My check title method calls 
/*
public void CheckTitle () {
    String ActualTitle = driver.getTitle();


String[]  Title = new String[7];

    Title[0] = "My Site Account | Site US";
    Title[1] = "My Site Account | Site CA";
    Title[2] = "My Site Account | Site AU";

    for (int i=0; i<Title.length; i++) {

    if(ActualTitle.equals(Title[i])){
        System.out.println("Page"+ Title[i] + " is up + Registered Log on 
have passed");
    }
    else {System.err.println( Title[i] + " Page + Registerd Log on have 
FAILED");   
    }
    }
}*/


      quitbrowser();

    }

}   
}

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

Ответы [ 3 ]

1 голос
/ 22 июня 2019

Просто оберните весь метод, чтобы принять один аргумент - url - и затем в тестовом примере выполните итерацию по вашим URL.

0 голосов
/ 25 июня 2019

Спасибо, @ordonezalex, я использовал ваше решение как soo ..

public class LogIn extends ReusableMethod { 

    Test void test()throws Exception {

     String[] Urls;
     Urls = new String[3];

        Urls[0] = "https://www.nixon.com/us/en";
        Urls[1] = "https://www.nixon.com/ca/en";

        String[] Titles;
        Titles = new String[3];
        Titles[0] = "My Nixon Account | Nixon US";
        Titles[1] = "My Nixon Account | Nixon CA";

     for (int i=0; i<Urls.length; i++) {
        System.out.println(Urls.length);

        openbrowser(Urls[i]);

        RegisteredSignIn();

        CheckTitle(Titles[i]); ....
0 голосов
/ 22 июня 2019

Я не уверен, что полностью понимаю ваш вопрос, но, похоже, вам нужно хранить ожидаемые заголовки аналогично тому, как вы сохраняете URL-адреса, которые необходимо протестировать.Вот пример:

public class LogIn {

    @Test
    void test() throws Exception {
        String[] urls = new String[3];

        urls[0] = "site.com/us/en";
        urls[1] = "site.com/ca/en";
        urls[2] = "site.com/au/en";

        String[] titles = new String[3];
        titles[0] = "Site Title - US";
        titles[1] = "Site Title - CA";
        titles[2] = "Site Title - AU";

        for (int i = 0; i < urls.length; i++) {
            checkTitle(urls[i], titles[i]);
        }
    }

    void checkTitle(String url, String expected) {
        openbrowser(url);

        //------- sign in from the sign in page--------//
        RegisteredSignIn();

        CheckTitle(expected);

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