Utiliser Python Sélénium pour obtenir la durée de texte
Ce devrait être facile, mais je ne peux pas le faire fonctionner. Je suis un peu en démo à l'aide de la page d'accueil de Google comme un test.
Voici mon script:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Chrome()
browser.get("http://www.google.com") # Load page
time.sleep(0.2)
#top nav elements
elems = browser.find_elements_by_xpath("//span[contains(@class, 'gbts')]")
for e in elems:
print e.get_attribute('text')
browser.close()
Il retourne:
None
None
None
None
None
None
None
None
None
None
None
Donc je pense que c'est en saisissant les éléments, mais peut-être pas le droit d'attribut? Pas sûr. J'ai aussi essayé d'imprimer des e.texte (), mais qui crache:
Traceback (most recent call last):
File "sample.py", line 14, in <module>
print e.text()
TypeError: 'unicode' object is not callable
Toutes les pensées?
*Modifier - Solution Possible? *
e.get_attribute('innerHTML') seems to work.
J'ai eu le même problème et votre Modifier-Solution Possible fonctionne pour moi aussi.
e.get_attribute('innerHTML')
OriginalL'auteur doremi | 2013-01-29
Vous devez vous connecter pour publier un commentaire.
Cela devrait le faire:
text
est une propriété de laWebElement
classe, donc il n'est pas appelable.Vous avez deux solutions pour obtenir le troisième match:
text
est un attribut de webelement objet, et non une méthode.Cool. Autre question, comment puis-je récupérer uniquement la 3e travée?
comme
browser.find_elements_by_xpath('.//span[@class = "gbts"]')
renvoie une liste, vous pouvez simplement l'accès par index...OriginalL'auteur root
OUI ! La Solution a été trouvée (je suis à l'aide de Python)
Pour instanc: webelement est une balise p
à partir de la situation réelle, stacktrace:
impression page_box_block.texte()
TypeError: 'unicode' objet n'est pas appelable
il s'attend à être un html dans stdout, non mais!!
pourrait parfois être une étrange chaîne unicode objet n'est pas appelable" ou d'un certain type d'erreur
la solution est très simple:
En java get_attribute("innerHTML") et le texte() sont sur le point de "même", si vous avez besoin du texte brut à partir de l'élément de
En Python 2.7 pour l'instant de texte() échoue parfois.
En Python 2.7 pour l'instant de texte() échoue parfois. m'a sauvé la vie +1
Merci pour l' .get_attribute("innerHTML"). C'était ce que je cherchais!
OriginalL'auteur user3252247