Доброго всем дня!!!
Подскажите как проверить есть ли текст в элементе?
C# используя Assert
и хотелось бы чтоб тест не свалился если возникает ошибка
Спасиьбо
Товарищ, ваш вопрос - не вопрос, а не пойми что. Хотите точный ответ - пишите больше подробностей, напрзимер, что за элемент, что из работающего с C# вы используете? У меня есть подозрение, что Selenium какой-то версии.
На Assert-ах проверяется то, что “железно” должно быть. Если возникает ОШИБКА, то - свалиться просто должно, ибо - ошибка. Если это - хтмльная страница, то - сначала проверяйте, что страница полностью загрузилась, потом - ищите соответствие содержание элементов их ожидаемым значениям.
Чтобы не свалилось и можно было продолжать, используйте, например, ифы с выводом результата в лог. Или трай-кетч используйте, если неймётся.
пысы: пора админам ввести форму внесения вопроса с разными полями с обязательным заполнением, а то уже сотни раз - по кругу одно и то же, человек спрашивает не пойми что, вызывая негативные реакции читателей.
Моё предложение: ввести поля с ОБЯЗАТЕЛЬНЫМ ЗАПОЛНЕНИЕМ.
Список полей (textarea) таков:
- Вопрос;
- Используемая OS на клиенте;
- Используемая OS на сервере (if exists);
- Используемая технология или продукт (например, Selenium или TestComplete) и их версии;
- Используемый язык программирования;
- Целевой браузер(ы), если используются;
- Комментарии, если “пейсатель” считает нужным добавить что-то важное, но не входящее в иные поля.
Надеюсь, меня услышат, а всем - профит по времени и пользе при поиске и прочтении только интересующего материала на сайте.
Не в курсе как это сделано в C# , но в JAVA и Python есть Expected conditions.
Там есть метод text_to_be_present_in_element_value(locator, text).
Можно сделать с ним ожидание и будет вам профит
Assert.That(element.Text, Is.StringContaining(expected));
Спасибо!!!
А товарищу yobibyte хочется сказать одно. Сразу видно тестер со стажем, утоните то, уточните это.
Большинство вопросов видел посвящено Selenium WebDriver. Может я и ошибся.
Но после таких обычно на форумах и не хочется спрашивать, которым написать пол
страницы текста не лень, чем просто дать нормальный ответ.
И не строить из себя мегамозг(тут уж простите не сдержался)
Проще надо смотреть на вещи. Форумы для этого и надо.
но и Вам огромное спасибо. Впредь буду писать
VS2013, Nunit 2.6.3, Selenium WD 2.41 C#
Элемент формы регистрации, тестовое поле
Если нужно ожидание появления элемента, можно использовать один из этих Expected conditions (переписаны из Java под C#)
/// <summary>
/// An expectation for checking if the given text is present in the specified
/// element.
/// </summary>
/// <param name="locator">used to find the element</param>
/// <param name="text">Expected text</param>
/// <returns><see langword="true"/> If element contains text; otherwise, <see langword="false"/>.</returns>
public static Func<IWebDriver, bool> TextToBePresentInElement(By locator, string text)
{
return (driver) =>
{
try
{
string elementText = driver.FindElement(locator).Text;
return elementText.Contains(text);
}
catch (StaleElementReferenceException)
{
return false;
}
};
}
/// <summary>
/// An expectation for checking if the given text is present in the specified
/// elements value attribute.
/// </summary>
/// <param name="locator">used to find the element</param>
/// <param name="text">Expected text</param>
/// <returns><see langword="true"/> If element value contains text; otherwise, <see langword="false"/>.</returns>
public static Func<IWebDriver, bool?> TextToBePresentInElementValue(By locator, string text)
{
return (driver) =>
{
try
{
var elementText = driver.FindElement(locator).GetAttribute("value");
return elementText != null && elementText.Contains(text);
}
catch (StaleElementReferenceException)
{
return null;
}
};
}
Если нужен просто Assert то думаю сработает данный вариант:
try
{
Assert.That(element.Text, Is.StringContaining(expected));
}
catch (AssertionException)
{
// Записываем в лог если нет текста
}
пысы: пора админам ввести форму внесения вопроса с разными полями с обязательным заполнением, а то уже сотни раз - по кругу одно и то же, человек спрашивает не пойми что, вызывая негативные реакции читателей.
Обязательная форма для заполнения - странное занятие, так как здесь не только пишут в поисках решения проблемы, но и делятся информация. Что в таких случаях заполнять в данную форму?