Селен: как определить элемент в операторе if? - PullRequest
3 голосов
/ 19 июня 2019

Использование Selenium в Visual Studio. Я пишу тестовый сценарий, в котором мне сначала нужно узнать, существует ли конкретный элемент или нет, прежде чем я смогу продолжить.

Когда я пытаюсь идентифицировать элемент внутри оператора if, вот так:

  if (driver.FindElement(By.XPath("//lina-device-information/div[1]/div[2]/lina-list-wrapper[3]/div/div/lina-insurance-information")))
{
//Do stuff
}
else
{
//End test
}

Я получаю сообщение об ошибке: «Ошибка CS0029 Невозможно неявно преобразовать тип« OpenQA.Selenium.IWebElement »в« bool »»

Разве невозможно использовать FindElement в качестве условия в операторе if или что я делаю неправильно?

Ответы [ 2 ]

3 голосов
/ 19 июня 2019

Если элемент отсутствует в DOM, он будет выдавать NoSuchElementException при использовании findElement.
Попробуйте использовать findElements, который возвращает список. Затем проверьте, если список пуст или нет. Таким образом, вам не нужно обрабатывать исключение.

Попробуйте это:

if (driver.FindElements(By.XPath("//lina-device-information/div[1]/div[2]/lina-list-wrapper[3]/div/div/lina-insurance-information")).Count > 0)
 {
 // Do stuff
 // Element found
 }
 else{
 // Element not found
 }
1 голос
/ 19 июня 2019

«Если» ожидает логического выражения, вместо логического «FindElement» возвращает webElement. Следовательно, вы получили ошибку времени компиляции.

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