Почему этот вызов Python Splinter не возвращает весь основной текст?
from splinter import Browser
from splinter.exceptions import ElementDoesNotExist
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
browser.find_by_tag('body').text
browser.visit(str('http://ariismits.com/contact-us'))
a = browser.find_by_tag('body').text
print a
просто возвращает меню...
"u'HOME | ФИЛОСОФИЯ | ПОРТФОЛИО | ЧТО МЫ ДЕЛАЕМ | БЛОГ | КОНТАКТ \ n Карта данных \xa92017 Google\n Условия использования \ n Сообщить об ошибке карты \ nMap \ nSatell \n\n\n\n\n\n\nAriiSmits'u'HOME | ФИЛОСОФИЯ | ПОРТФОЛИО | ЧТО МЫ ДЕЛАЕМ | БЛОГ | КОНТАКТ \ n Карта данных \xa92017 Google\n Условия использования \ n Сообщить об ошибке карты \ nMap \ nSatell \ n \ n \ n \ n \ n \ n \ nAriiSmits '"
... но когда я захожу на страницу, я вижу номера телефонов, адреса электронной почты и т. д.
Почему это не включено в ответ, пожалуйста?
1 ответ
Я нашел решение. Ответ заключается в том, что текст должен быть видимым для пользователя при запуске кода. Этот сайт имел адаптивный дизайн, и когда окно было меньше, текст, который я искал, не был виден. Поэтому, когда я побежал
browser.find_by_tag('body').text
Сплинтер не видел текст. Несмотря на то, что текст, который я искал, был в HTML, он не был виден на экране (из-за адаптивного дизайна), поэтому Splinter (и Selenium работает так же) не захватывал текст.
В моем случае, когда это....
browser = Browser('chrome')
browser.visit('http://ariismits.com/contact-us')
он запускает новое окно на моем ноутбуке, это только половина экрана. Максимизация окна и повторный запуск "browser.find_by_tag('body'). Text" работали как я хотел. См. ( Управление размером браузера (окна) с помощью Splinter) для получения дополнительной информации об изменении размера.
Я надеюсь, что это сэкономит кому-то еще время.:-)