Перейти к содержимому

Фотография

Webdriver, есть ли аналог verifyTextPresent из seleniumIDE?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1 Arkady

Arkady

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:AAA
  • Город:Белоруссия

Отправлено 21 августа 2012 - 12:43

команда verifyTextPresent не экспортируется в webdriver.
Интересует как в webdriver проверить, что на странице есть определенный текст?
  • 0

#2 Arkady

Arkady

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:AAA
  • Город:Белоруссия

Отправлено 21 августа 2012 - 13:01

вопрос отменяется.
Уже нашел: Assert.IsTrue(driver.PageSource.Contains("Text Text"));
  • 0

#3 achumagin

achumagin

    Активный участник

  • Members
  • PipPip
  • 145 сообщений
  • ФИО:Alexey Chumagin
  • Город:Казань

Отправлено 21 августа 2012 - 13:02

Here is another example which takes in a WebElement and searches the text of elements with particular tags

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/
еще примеры
  • 0
ap-test-team.blogspot.com

#4 Arkady

Arkady

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:AAA
  • Город:Белоруссия

Отправлено 21 августа 2012 - 13:26

achumagin этот пример не подходит, т.к. в нем надо обязательно указывать тэг и родительский элемент.
А в seleniumIDE команда verifyTextPresent ищет только текст и в любом месте страницы.
В вебдрайвере оказывается есть команда driver.PageSource.Contains("Text Text") для этого, странно что не включили ее в экспорт в SeleniumIDE.
  • 0

#5 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 21 августа 2012 - 14:02

Правильнее так:
driver.findElement(By.tagName("body")).getText().contains("Text Text")

Почему правильнее? Потому что при этом выполняется нормализация пробелов (замена табуляций,   и прочих "пробельных" символов на обычные пробелы, схлопывание идущих подряд пробелов).
  • 1
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#6 Arkady

Arkady

    Активный участник

  • Members
  • PipPip
  • 94 сообщений
  • ФИО:AAA
  • Город:Белоруссия

Отправлено 21 августа 2012 - 14:28

Правильнее так:

driver.findElement(By.tagName("body")).getText().contains("Text Text")

Почему правильнее? Потому что при этом выполняется нормализация пробелов (замена табуляций,   и прочих "пробельных" символов на обычные пробелы, схлопывание идущих подряд пробелов).


и еще так правильнее, потому что driver.PageSource ищет ведь наверное в исходном коде, а не в том что отображается на странице, а значит текст может быть закоментарен но все равно найдется.
  • 0

#7 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 21 августа 2012 - 19:59

Да, может быть закомментирован, может присутствовать в значении какого-нибудь атрибута, а не в тексте страницы, может вообще отсутствовать, если на странице он появляется в результате работы какого-нибудь javaScript'а.
В общем, не используйте page source :)
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#8 hathi

hathi

    Новый участник

  • Members
  • Pip
  • 40 сообщений
  • ФИО:Потоцкий Евгений Леонидович

Отправлено 21 августа 2012 - 20:00


Правильнее так:

driver.findElement(By.tagName("body")).getText().contains("Text Text")

Почему правильнее? Потому что при этом выполняется нормализация пробелов (замена табуляций,   и прочих "пробельных" символов на обычные пробелы, схлопывание идущих подряд пробелов).


и еще так правильнее, потому что driver.PageSource ищет ведь наверное в исходном коде, а не в том что отображается на странице, а значит текст может быть закоментарен но все равно найдется.

Не знаю на сколько ты силен в программировании, но софтасерты(насколько мне известны) реализованы через try-catch
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных