Как проверить все элементы на одной странице с помощью таблицы данных - PullRequest
0 голосов
/ 11 июня 2019

Я хотел бы знать, как найти все элементы на одной странице и утверждать, что они отображаются на странице с помощью таблицы данных в Selenium / Java /Cucumber.

.

Например, у меня есть такой сценарий

Sceanario: Verify all the elements in the xyz page
Given I am in the abc page
When I navigate to xyz page
Then I can see the following fields in the xyz page
|field 1|
|field 2|
|field 3|
|field 4|

Ответы [ 2 ]

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

Первый шаг: Построение таблицы данных. (Подсказка: Используя Заголовок , мы можем реализовать Таблицу данных очень чистым и точным способом, учитывая, что Таблица данных выглядит ниже 1)

Then I can see the following fields in the xyz page
    | Field Name | Locator |
    |  field 1   |  Xpath1 |
    |  field 2   |  Xpath2 |
    |  field 3   |  Xpath3 | 
    |  field 4   |  Xpath4 | 

Второй шаг: Реализация определения шага

    @Then    
    public void I_can_see_the_following_fields_in_the_xyz_page(DataTable table) throws Throwable {
        WebElement element;
        List<Map<String, String>> list = table.asMaps(String.class,String.class); 
        for(Map<String, String> list : data) {
            element = driver.findElement(By.xpath(list.get("Locator")));
            Assert.assertTrue("Element : "+list.get("Field Name")+ "not found",isElementPresent(element));   
        }
    }

Служебный метод: Чтобы проверить, присутствует ли элемент

    protected synchronized boolean isElementPresent(WebElement element) {
        boolean elementPresenceCheck = false;
        Wait<WebDriver> wait=null;
        try {
            wait = new FluentWait<WebDriver>((WebDriver) driver).withTimeout(10, TimeUnit.SECONDS).pollingEvery(1,
                    TimeUnit.SECONDS);
            elementPresenceCheck = wait.until(ExpectedConditions.visibilityOf(element)).isDisplayed();
            return elementPresenceCheck;
        }catch(Exception e) {
            return elementPresenceCheck;
        }
    }
0 голосов
/ 11 июня 2019

Что если вы поместите все значения в массив { field 1, field 2, field 3, field 4 } и как следующий шаг -> проверит видимость каждого значения на странице?

Я считаю, что это должно решить вашу проблему.

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