Периодически нам приходится проверять, присутствует ли элемент на странице.
Я пока не вижу более адекватного варианта, чем найти все элементы с нужным локатором и проверить, что размер получившегося списка не равен 0.
Это работает.
Но долго.
Иногда страшно долго (если мы ищем по xpath, и элемента на странице всё таки нет).
Можно сказать драйверу чтобы не особо напрягался поисками элемента.
Реализация в С# будет так:
Я пока не вижу более адекватного варианта, чем найти все элементы с нужным локатором и проверить, что размер получившегося списка не равен 0.
bool exists = driver.FindElements(locator).Count != 0;
Это работает.
Но долго.
Иногда страшно долго (если мы ищем по xpath, и элемента на странице всё таки нет).
Можно сказать драйверу чтобы не особо напрягался поисками элемента.
Реализация в С# будет так:
public static bool IsElementPresent(By locator)
{
var driver = GetDriver();
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromMilliseconds(0));
bool exists = driver.FindElements(locator).Count != 0;
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3));
return exists;
}