Как проверить, виден ли элемент иконки? - PullRequest
2 голосов
/ 23 апреля 2020

У меня есть сайт, на котором он показывает значок предупреждения каждый раз, когда обнаруживает что-то не так с контентом сайта.

enter image description here

Тег этого значка всегда присутствует в фоновом режиме, но сам значок становится видимым только тогда, когда тег имеет :: before .

enter image description here

Что теперь Мне нужно проверить, заполнен ли тег, чтобы убедиться, что я ловлю значок каждый раз, когда он присутствует.

Код, который у меня есть сейчас, всегда обнаруживает значок, потому что он ловит только сам тег, а не его содержимое.

Пожалуйста, покажите мне лучший способ сделать это, заранее спасибо!

if(driver.FindElement(By.Id("alertmsgBtn")) != null)
            {

                Console.WriteLine("Warning Alert Present");
            }
            else
            {
                Console.WriteLine("No Warning");
            }

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Если он использует aria-hidden="true", чтобы скрыть значок при отсутствии предупреждения, вы можете использовать GetAttribute("aria-hidden"), чтобы проверить, является ли его значение истинным или ложным, для принятия ваших решений.

String IsHidden = driver.FindElement(By.Id("alertmsgBtn")).GetAttribute("aria-hidden");
if( IsHidden == "true" ) {
   Console.WriteLine("No Warning");
} else {
   Console.WriteLine("Warning Alert Present");
}
0 голосов
/ 25 апреля 2020

Если я вас правильно понял, то следующий код должен работать для вас:

            if (driver.FindElement(By.CssSelector("#alertmsgBtn icon")) != null)
            {            
                Console.WriteLine("Warning Alert Present");
            }
            else
            {
                Console.WriteLine("No Warning");
            }

Где мы ищем элемент с идентификатором alertmsgBtn и элементом icon внутри него. Если есть другой элемент, когда иконка видна, то вы можете просто заменить имя этого элемента на icon в моем примере.

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