Почему тип возвращаемого значения 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 (согласно вашему обновлению комментария).