À l'aide de Sélénium en Python à cliquer sur tous les éléments avec le même nom de classe
Je suis en train d'essayer de cliquer sur les "j'aime" boutons sur une page web. Je sais comment faire, cliquez sur l'un d'eux, mais je voudrais être en mesure de cliquer sur eux tous. Ils ont le même nom de classe, mais différent de l'id.
Ai-je besoin de créer une sorte de liste et dites-lui de cliquer sur chacun des éléments sur la liste? Est-il un moyen d'écrire "sur tous les"?
Voici ce que mon code ressemble (j'ai enlevé le code de connexion):
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
browser = webdriver.Firefox()
browser.set_window_size(650, 700)
browser.get('http://iconosquare.com/viewer.php#/tag/searchterm/grid')
mobile = browser.find_element_by_id('open-menu-mobile')
mobile.click()
search = browser.find_element_by_id('getSearch')
search.click()
search.send_keys('input search term' + Keys.RETURN)
#this gets me to the page I want to click the likes
fitness = browser.find_element_by_css_selector("a[href*='fitness/']")
fitness.click()
#here are the different codes I've tried to use to click all of the "like buttons"
#tried to create a list of all elements with "like" in the id and click on all of them. It didn't work.
like = browser.find_elements_by_id('like')
for x in range(0,len(like)):
if like[x].is_displayed():
like[x].click()
#tried to create a list by class and click on everything within the list and it didn't work.
like = browser.find_elements_by_class_name('like_picto_unselected')
like.click()
AttributeError: 'list' object has no attribute 'click'
Je sais que je ne peux pas cliquer sur une liste car il n'est pas un objet unique, mais je n'ai aucune idée de comment j'allais faire autrement.
Votre aide est grandement appréciée.
quelqu'un a répondu à une question similaire sur java, mais je ne sais pas comment faire pour le convertir en Python ou si c'est encore possible. stackoverflow.com/questions/15537930/...
A ma solution résout pas le problème?
A ma solution résout pas le problème?
OriginalL'auteur Gus Gabel | 2015-07-10
Vous devez vous connecter pour publier un commentaire.
C'est malheureux, vous avez deux moitiés de l'ensemble, vous ne pouvez pas trouver de multiples éléments par id ID est unique à un seul élément.
ainsi de combiner la méthode itérative vous utilisez avec l'id et le trouver par des éléments avec des classes à obtenir:
Je soupçonne fortement que cela fonctionnera pour vous. S'il vous plaît dites-moi si ce n'.
cela fonctionne génial! serait-il possible de faire une impression sur la façon dont la plupart se trouvent? ou combien il a cliqué?
OriginalL'auteur Going hamateur