WebDriver проверка текстов внутри элемента.
#1
Отправлено 03 октября 2013 - 12:43
driver.findElement(By.cssSelector(".title"))
// далее необходимо проверить текст в этом элементе
// вот такая строка берет видимый текст и ее можно выводить в консоли с помощью System.out.println() но не проверяет
driver.findElement(By.cssSelector(".title")).getText()
// пробовал вот так, не получается
driver.findElement(By.cssSelector(".title")).getText().contains("text");
// подскажите пожалуйста, как можно это реализовать
#2
Отправлено 03 октября 2013 - 13:15
1) вывод на консоль, естественно, не проверяет ничего.// нахожу элемент
driver.findElement(By.cssSelector(".title"))
// далее необходимо проверить текст в этом элементе
// вот такая строка берет видимый текст и ее можно выводить в консоли с помощью System.out.println() но не проверяет
driver.findElement(By.cssSelector(".title")).getText()
// пробовал вот так, не получается
driver.findElement(By.cssSelector(".title")).getText().contains("text");
// подскажите пожалуйста, как можно это реализовать
2) метод .contains(String str) возвращает булевское значение TRUE/FALSE, означающее "содержит"/"не содержит". Этот ответ Вам и нужно обработать.
Если Вы пользуетесь JUNIT-ом, то вполне достаточно использовать:
assertTrue(driver.findElement(By.cssSelector(".title")).getText().contains("text"));
#3
Отправлено 03 октября 2013 - 13:17
1) вывод на консоль, естественно, не проверяет ничего.
2) метод .contains(String str) возвращает булевское значение TRUE/FALSE, означающее "содержит"/"не содержит". Этот ответ Вам и нужно обработать.
Если Вы пользуетесь JUNIT-ом, то вполне достаточно использовать:assertTrue(driver.findElement(By.cssSelector(".title")).getText().contains("text"));
пользуюсь TestNG
вот так тоже не получается
assertEquals("text", driver.findElement(By.cssSelector(".title")).getText());
#4
Отправлено 03 октября 2013 - 13:24
Потому что EQUALS - это полное совпадение, а CONTAINS - это включение.
1) вывод на консоль, естественно, не проверяет ничего.
2) метод .contains(String str) возвращает булевское значение TRUE/FALSE, означающее "содержит"/"не содержит". Этот ответ Вам и нужно обработать.
Если Вы пользуетесь JUNIT-ом, то вполне достаточно использовать:assertTrue(driver.findElement(By.cssSelector(".title")).getText().contains("text"));
пользуюсь TestNG
вот так тоже не получается
assertEquals("text", driver.findElement(By.cssSelector(".title")).getText());
Пример:
assertEquals("мама", "мама мыла раму"); // выдаст AssertionError assertTrue((new String("мама мыла раму")).contains("мама")); // пройдёт успешно
#5
Отправлено 03 октября 2013 - 13:31
Потому что EQUALS - это полное совпадение, а CONTAINS - это включение.
Пример:assertEquals("мама", "мама мыла раму"); // выдаст AssertionError assertTrue((new String("мама мыла раму")).contains("мама")); // пройдёт успешно
Понятно. Так что же мне использовать?)
#6
Отправлено 03 октября 2013 - 13:34
Интересно, что же Вам тогда стало понятно?
Потому что EQUALS - это полное совпадение, а CONTAINS - это включение.
Пример:assertEquals("мама", "мама мыла раму"); // выдаст AssertionError assertTrue((new String("мама мыла раму")).contains("мама")); // пройдёт успешно
Понятно. Так что же мне использовать?)
Если Вы точно знаете текст, который нужно проверить, то можно по EQUALS.
Если Вы знаете только часть текста (например, в найденном элементе 100% должно присутствовать слово "мама", а всё остальное - не важно), то необходимо использовать CONTAINS.
Всё зависит от конкретного случая.
#7
Отправлено 03 октября 2013 - 13:40
Интересно, что же Вам тогда стало понятно?
видимо ничего)
Если Вы точно знаете текст, который нужно проверить, то можно по EQUALS.
Если вы знаете только часть текста (например, в найденном элементе 100% должно присутствовать слово "мама", а всё остальное - не важно), то необходимо использовать CONTAINS.
Всё зависит от конкретного случая.
Я точно знаю текст, который надо проверять.
#8
Отправлено 03 октября 2013 - 13:53
Тогда driver.findElement(By.cssSelector(".title")).getText() в студию!Я точно знаю текст, который надо проверять.
Желательно, обрамить его тегом {quote}
#9
Отправлено 03 октября 2013 - 15:14
#10
Отправлено 03 октября 2013 - 15:17
Sadnes, а вы можете выложить свой код теста?
@Test
public void testUntitled() throws Exception { driver.get(baseUrl + "/");
// Open page BECOME A MEMBER
driver.findElement(By.cssSelector(".create")).click();
// Search title
assertEquals("step 1: COSTS & TERMS", driver.findElement(By.cssSelector("div.title")).getText());
// Select radio bottom costs
driver.findElement(By.cssSelector(".classic>tbody>tr>td>label")).click();
// Select radio bottom license
driver.findElement(By.id("w")).click();
// Next step
driver.findElement(By.cssSelector("button.next.brown")).click();
#11
Отправлено 04 октября 2013 - 07:09
n = driver.findElements(By.cssSelector("div.title")).size()если вернёт 0, значит элемента нет
Ещё ваш див может быть во фрейме (iframe), тогда нужно переключиться в этот фрейм и работать внутри него
#12
Отправлено 04 октября 2013 - 07:41
Семантически правильнее было бы написать так:assertEquals("step 1: COSTS & TERMS", driver.findElement(By.cssSelector("div.title")).getText());
assertEquals(new String("step 1: COSTS & TERMS").toLowerCase(), driver.findElement(By.cssSelector("div.title")).getText().toLowerCase());
Вы, наверное, имели в видуну, вроде всё правильно. Уже всё работает? Если нет, то можно проверить наличие элемента с помощью
n = driver.findElement(By.cssSelector("div.title")).size()если вернёт 0, значит элемента нет
n = driver.findElements(By.cssSelector("div.title")).size()
#13
Отправлено 04 октября 2013 - 11:38
#14
Отправлено 10 октября 2013 - 10:35
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных