WebDriver - невозможно найти атрибут динамического диапазона - PullRequest
0 голосов
/ 24 мая 2018

Веб-сайт, который я сейчас тестирую, получает данные из БД, и это динамично.Мне нужно иметь возможность получить значение из БД и проверить его на предмет того, что присутствует в пользовательском интерфейсе, который не будет статичным.Текст, который я пытаюсь проверить, приведен ниже, для этого мне нужно идентифицировать элемент и проверить текст, сравнивая данные из БД и то, что присутствует на экране.Конкретный текст в этом примере - «Ресурс»Один и тот же диапазон повторяется несколько раз с разными значениями на одном и том же экране.Пожалуйста, помогите, как я могу идентифицировать элемент, а также проверки на соответствие БД.Я новичок в селен WebDriver.

<span class="card-title grey-text">Resource</span>

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Вы можете собрать все пролеты в списке и проверить их по значениям БД:

int iCnt=0;
List<String> listDB = new ArrayList();

public List<String> DBconnection(){
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost/t", "", "");

    Statement st = con.createStatement();
    String sql = ("SELECT * FROM table ORDER BY id;");
    ResultSet rs = st.executeQuery(sql);

    if(rs.next()) { 
       listDB.add(rs.getString("second_column_name"));
    }

    con.close();
    return list;
}

// тестирование детали

public void testAginstDb(List<String> listDB){
    List<WebElement> listSpan = 
    driver.findElement(By.cssSelector("span.card-title.grey-text"));

    for(String itemDb : listDB){
        for (WebElement item : listSpan) {
           if(item.getText().equals(rs.value())){
              iCnt+=1;
              break;
           } 
        }

    Assert.equals(list.size(), iCNT);

    }
}

Извините код был написан из головы, возможно, есть ошибкиПо сути, я бы применил такой подход.

Надеюсь, это поможет,

0 голосов
/ 24 мая 2018

Если значение диапазона «Ресурс» является динамическим каждый раз, попробуйте получить его следующим образом:

driver.findElement(By.xpath("//span[@class='card-title grey-text']")).getText();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...