2017-10-18 1 views
-2

Lorsque je tente gratter ce lienQuand j'appelle driver.find_elements_by_class_name ('radio') pourquoi la taille ne veut pas montrer?

https://hbx.com/brands/reebok/club-c-85-1 

Quand j'appelle utiliser

driver.find_elements_by_class_name('radio') or driver.find_elements_by_class_name('hidden-xs') or driver.find_elements_by_class_name('form-control') 

Pourquoi je ne peux pas voir le numéro de taille? Ce que j'ai obtenu est ceci.

[<selenium.webdriver.remote.webelement.WebElement (session="d8112720343cc58b0a17512f8cd83c7a", element="0.3067735208506053-494")>, <selenium.webdriver.remote.webelement.WebElement (session="d8112720343cc58b0a17512f8cd83c7a", element="0.3067735208506053-495")>, <selenium.webdriver.remote.webelement.WebElement (session="d8112720343cc58b0a17512f8cd83c7a", element="0.3067735208506053-496")>, <selenium.webdriver.remote.webelement.WebElement (session="d8112720343cc58b0a17512f8cd83c7a", element="0.3067735208506053-497")>, <selenium.webdriver.remote.webelement.WebElement (session="d8112720343cc58b0a17512f8cd83c7a", element="0.3067735208506053-498")>, <selenium.webdriver.remote.webelement.WebElement (session="d8112720343cc58b0a17512f8cd83c7a", element="0.3067735208506053-499")>, <selenium.webdriver.remote.webelement.WebElement (session="d8112720343cc58b0a17512f8cd83c7a", element="0.3067735208506053-500")>] 

mon script

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
driver = webdriver.Chrome() 

#url target 
driver.get("https://hbx.com/categories/sneakers") 

#masuk link 
driver.find_element_by_css_selector('a.picture').click() 

#size/color 
driver.find_elements_by_class_name('radio') 

Répondre

0

find_elements_by_class_name: Il retourne la liste des objets de WebElements. Et pas le texte qui vous intéresse. Le texte est la propriété de WebElement (pas la liste si)

Donc vous pourriez faire quelque chose comme ça.

for elem in driver.find_elements_by_class_name('radio'): 
    print elem.text 

Et s'il n'y a qu'un seul élément correspondant à l'classname donné, vous pouvez simplement faire quelque chose comme ça.

driver.find_element_by_class_name('radio').text 
+0

Salut, 'driver.find_element_by_class_name ('radio'). Text' est travail! Mais quand je l'utilise 'driver.find_element_by_class_name ('radio') texte » ou 'driver.find_elements_by_class_name ('radio')' je suis arrivé ce ** retraçage (appel le plus récent en dernier). Fichier "", ligne 1, in ' AttributeError: l'objet 'list' n'a pas d'attribut 'text' ** – Filmar

+0

Alors, pourquoi je ne peux pas utiliser plusieurs éléments? – Filmar

+0

car la liste n'a pas la propriété nommée 'text'. S'il vous plaît d'abord apprendre le concept de langage de programmation avant de passer à l'automatisation, sinon vous resterez coincé à chaque point. Aussi, si cela répond à votre question, vous devriez l'accepter. –