Я не знаю, как написать чек - если элемент находится на сайте - PullRequest
0 голосов
/ 24 сентября 2019

Я кодирую в C # с Selenium.Проблема

У нас есть пользователь A - admin и пользователь B - no-admin

На странице есть две кнопки, и пользователь A может видеть две кнопки, но пользователь B видит только одну

В моем коде Soruce я пишу что-то вроде этого:

bool X = Utils.FVE(pk.PrintXpath);
            Assert.AreEqual(true, X);

bool Y = Utils.FVE(pk.AssignPKXpath);
            Assert.AreEqual(false, Y);

Мой метод

public static bool FVE(string xpath)
        {

            if (driver.FindElements(By.Id(xpath)) != null)
            {
                return true;
            }

            else
            {
                return false;
            }

        }

для кнопки X это нормально, правда, но для кнопки Y я все еще получаю истину... который должен быть ложным.Понятия не имею, как это исправить ...

1 Ответ

1 голос
/ 24 сентября 2019

FindElements всегда возвращает List<IWebElement>.Если ничего не найдено, список пуст, а не null.Сделайте что-то вроде:

public static bool FVE(string xpath) 
    => driver.FindElements(By.Id(xpath)).Any();

Будет возвращено true, если найден один или несколько элементов, в противном случае false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...