2017-10-09 3 views
0
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 

juste retourne les menus ...Pourquoi cet appel Python Splinter ne retourne-t-il pas tout le corps du texte?

« u'HOME | PHILOSOPHIE | PORTFOLIO | QU'EST-CE QUE NOUS FAISONS | BLOG | CONTACT \ data nmap \ Google \ xa92017 nTerms d'utilisation \ nReport une erreur carte \ nmap \ nSatellite \ n \ n \ n \ n \ nAriiSmits'u'HOME | PHILOSOPHIE | PORTFOLIO | CE QUE NOUS FAISONS | BLOG | CONTACT \ nCarte de données \ xa92017 Google \ nConditions d'utilisation \ nSignaler une erreur de carte \ nMap \ NSatellite \ n \ n \ n \ n \ n \ n \ nAriiSmits »

... mais quand je visite la page, je peux voir les numéros de téléphone, adresses e-mail, etc

Pourquoi n'est pas tha t inclus dans la réponse s'il vous plaît?

Répondre

0

J'ai trouvé une solution. La réponse est que le texte doit être visible pour un utilisateur humain lorsque le code s'exécute. Ce site avait un design responsive et quand la fenêtre était plus petite, le texte que je cherchais n'était pas visible. Donc, quand j'ai couru

browser.find_by_tag('body').text 

Splinter n'a pas vu le texte. Même si le texte que je cherchais était en HTML, il n'était pas visible à l'écran (en raison du design responsive), donc Splinter (et Selenium fonctionne comme ça aussi) n'a pas capturé le texte.

Dans mon cas, lorsque cela ....

browser = Browser('chrome') 
browser.visit('http://ariismits.com/contact-us') 

il lance une nouvelle fenêtre sur mon ordinateur portable, il est seulement la moitié de l'écran. Maximiser la fenêtre et relancer "browser.find_by_tag ('body'). Text" a fonctionné comme je le voulais. Voir (Manipulating browser (window) size using Splinter) pour plus d'informations sur le redimensionnement. J'espère que cela sauve quelqu'un d'autre un peu de temps. :-)