Поймать исключение NoSuchElementException от isDisplayed () в селене? - PullRequest
2 голосов
/ 24 января 2012

Я пытаюсь сделать функцию для перехвата org.openqa.selenium.NoSuchElementException, и вот моя реализация в scala:

def doesElementExists() = {    
  try {
    //as long as isDisplayed() returns a boolean value, it means the element exists in the html code
    seleniumElement.isDisplayed()
    true
  } catch {
    case element_not_found_exception: org.openqa.selenium.NoSuchElementException => {
      false
    }
  }
}

Однако, как только я проверяю несуществующий элемент, которыйЯ ожидаю, что функция вернет false, она сдуется и отбросит

org.openqa.selenium.NoSuchElementException, 
: Unable to locate element: {"method":"id","selector":"nonexistent-element"};

Мне интересно, почему блок catch не обработал исключение?

1 Ответ

0 голосов
/ 25 января 2012

IsDisplayed - это свойство элемента, который уже был найден. По сути, вы делаете это (код C #):

var element = driver.FindById("nonexistent-element"); //<---This is what throws NoSuchElementException
try
{
    var displayed = element.IsDisplayed;
}
catch(NoSuchElementException)
{
}

Таким образом, для достижения того, что вы хотите, ваша doesElementExists функция должна взять в качестве параметра локатор и заключить оператор try-catch в , найдя элемент.

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