Сложности в выборе оптимальной методики проверки ссылок

selenium
testng
java
Теги: #<Tag:0x00007fedc1152780> #<Tag:0x00007fedc1152550> #<Tag:0x00007fedc1152280>

(Mikita) #1

Selenium + Java + TestNG + allure2.
Я попытался сделать проверку работы и редирект ссылок путем поочередного нажатия на них. После того как тесты были написаны, я задумался над их оптимизацией.

Суть проблемы:
В футере имеется 8 кликабельных иконок с социальными сетями. При нажатии на любую из них - открывается новая вкладка, и фокус автоматом перебрасывается на нее.

Я написал на каждую из иконок отдельный тест:

        PageFooter pageFooter = new PageFooter(BaseDriver.getDriver());
        pageFooter.clickFacebook();
        BaseMethods.waitUntilPageBeenLoaded(5);
        BaseMethods.handleOpenedWindow();

        Assert.assertEquals(BaseDriver.getDriver().getCurrentUrl(), Property.getProperties("social.facebook"));
        Assert.assertTrue(BaseMethods.getResponseCodeStatus(BaseDriver.getDriver().getCurrentUrl()));

        BaseMethods.handleParentWindow(parentHandle);

Класс BaseMethods - отдельный общий класс, где я создал n-ое кол-во статических универсальных методов, которые могут быть вызваны из любого теста.

Собственно, проблема состоит в том, что код выше, отличается от остальных 7-ми лишь двумя строчками:

       pageFooter.clickFacebook();
       Assert.assertEquals(BaseDriver.getDriver().getCurrentUrl(), Property.getProperties("social.facebook"));

И после этого у меня возник вопрос - как же можно было бы объеденить эти тестовые методы в один, где проверяется поочередно все ссылки, чтобы было одновременно не громоздко, и оптимально?

Подскажите пожалуйста, поделитесь опытом, коего у меня мало.

P.s. думал над тем, чтобы написать цикл, который будет кликать по очереди на элементы (иконки), которые я заранее сунул в список. Но, мне кажется, что есть варианты по-лучше.


#2

http://testng.org/doc/documentation-main.html#parameters-dataproviders

https://www.programcreek.com/java-api-examples/index.php?api=org.testng.annotations.DataProvider

ok?


(Mikita) #3

А как датапровайдер может помочь? Передавать тестовому методу список с webelement-ами иконок?