
Webdriver, есть ли аналог verifyTextPresent из seleniumIDE?
#1
Отправлено 21 августа 2012 - 12:43
Интересует как в webdriver проверить, что на странице есть определенный текст?
#2
Отправлено 21 августа 2012 - 13:01
Уже нашел: Assert.IsTrue(driver.PageSource.Contains("Text Text"));
#3
Отправлено 21 августа 2012 - 13:02
public boolean verifyTextPresent(WebElement rootElement, String tag, String text) {
List elements = rootElement.findElements(By.tagName(tag));
boolean match = false;
for (WebElement elem : elements){
String elementText = elem.getText();
if (elementText.contains(text)){
match = true;
break;
}
}
try {
Assert.assertTrue(match);
System.out.println("\"" + text + "\" was found within elements within the passed in WebElement with ID (" + rootElement.getAttribute("id")+ ")");
}
catch (Exception e) {
System.err.println("\"" + text + "\" not found within elements within the passed in WebElement with ID (" + rootElement.getAttribute("id")+ ")");
}
return match;
}
взято отсюда http://www.seleniumw...nium-webdriver/
еще примеры
#4
Отправлено 21 августа 2012 - 13:26
А в seleniumIDE команда verifyTextPresent ищет только текст и в любом месте страницы.
В вебдрайвере оказывается есть команда driver.PageSource.Contains("Text Text") для этого, странно что не включили ее в экспорт в SeleniumIDE.
#5
Отправлено 21 августа 2012 - 14:02
driver.findElement(By.tagName("body")).getText().contains("Text Text")
Почему правильнее? Потому что при этом выполняется нормализация пробелов (замена табуляций, и прочих "пробельных" символов на обычные пробелы, схлопывание идущих подряд пробелов).
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#6
Отправлено 21 августа 2012 - 14:28
Правильнее так:
driver.findElement(By.tagName("body")).getText().contains("Text Text")
Почему правильнее? Потому что при этом выполняется нормализация пробелов (замена табуляций, и прочих "пробельных" символов на обычные пробелы, схлопывание идущих подряд пробелов).
и еще так правильнее, потому что driver.PageSource ищет ведь наверное в исходном коде, а не в том что отображается на странице, а значит текст может быть закоментарен но все равно найдется.
#7
Отправлено 21 августа 2012 - 19:59
В общем, не используйте page source :)
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#8
Отправлено 21 августа 2012 - 20:00
Не знаю на сколько ты силен в программировании, но софтасерты(насколько мне известны) реализованы через try-catch
Правильнее так:driver.findElement(By.tagName("body")).getText().contains("Text Text")
Почему правильнее? Потому что при этом выполняется нормализация пробелов (замена табуляций, и прочих "пробельных" символов на обычные пробелы, схлопывание идущих подряд пробелов).
и еще так правильнее, потому что driver.PageSource ищет ведь наверное в исходном коде, а не в том что отображается на странице, а значит текст может быть закоментарен но все равно найдется.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных