Почему мы не можем получить текст тега title без метода getTitle()

#java #selenium #testing

#java #селен #тестирование

Вопрос:

Мне любопытно узнать о тегах внутри раздела head, особенно о теге title. Почему мы не можем получить текст внутри этого тега, как другие теги, используемые внутри раздела body? В качестве примера:

 driver.findElement(By.tagName("title")).getText();
 

Я думаю, что это мета-тег, и он будет только один (если я ошибаюсь, поправьте меня). Итак, selenium предоставляет специальный метод, такой как getTitle()!

Ответ №1:

Метод Selenium getText() возвращает отображаемый текст. Таким образом, вызов getText() тега title вернет пустую строку, поскольку она не отображается на странице.

Чтобы получить текстовое содержимое, прочитайте атрибут / свойство ‘textContent’ :

 element.getAttribute("textContent")
 

Спецификация и реализация по умолчанию:
https://www.w3.org/TR/webdriver/#get-element-text
https://github.com/SeleniumHQ/selenium/blob/master/javascript/atoms/dom.js#L944