Почему тип возвращаемого значения findElement(By by) равен WebElement?

Почему тип возвращаемого значения findElement(By by) равен WebElement?

Я знаю, что в документации упоминается, что типом возврата является Webelment, но кто-нибудь может объяснить, почему типом возврата является Webelment.

Мои исследования по этой теме.

Потому что мы ищем элементы, используя findElement, а класс webelement используется для представления HTML-элемента.

Пожалуйста, дайте мне знать, если я думаю правильно или есть какая-то конкретная причина

1 ответ

Решение

Вы видели это правильно. Согласно Java Docs метод findElement() возвращает Webelment.

Чтобы ответить на ваш вопрос, почему типом возврата является Webelment, встречным вопросом для вас будет " Почему вы находите элемент?",

Грубый ответ - вам нужно (каким-то образом) взаимодействовать с элементом, который может быть одним из следующих:

  • заголовок
  • Текстовое поле
  • Поле пароля
  • кнопка
  • Выберите элемент
  • так далее

Вы ищете WebElement так, как хотите:

  • Утвердите условие WebElement (isDisplayed(), isEnabled()).
  • Взаимодействовать с ним (click(), sendKeys()).
  • Получить любой из его атрибутов. (getAttribute(), getCssValue())
  • Подождите, пока WebElement будет в определенном состоянии (isSelected()).

Поэтому по любой из этих причин вам необходимо получить ссылку на WebElement, который вы передаете через findElement(By by), и если ваш поиск успешен, точный WebElement возвращается обратно. Теперь вы можете вызвать любой из зачисленных methods() на WebElement согласно осуществимости следующим образом:

  • clear()
  • click()
  • findElement(By by)
  • findElements(By by)
  • getAttribute(java.lang.String name)
  • getCssValue(java.lang.String propertyName)
  • getLocation()
  • getSize()
  • getTagName()
  • getText()
  • isDisplayed()
  • isEnabled()
  • isSelected()
  • sendKeys(java.lang.CharSequence... keysToSend)
  • submit()

Вызов любого из следующих methods() было бы невозможно, если бы возвращаемый тип findElement() был Boolean (согласно вашему обновлению комментария).

Другие вопросы по тегам