Using Selenium in Python to click through all elements with the same class name -


i trying click on of "like" buttons on webpage. know how click on 1 of them, i'd able click them all. have same class name, different id's.

do need create sort of list , tell click on each 1 of items on list? there way write "click all"?

here's code looks (i removed login code):

from selenium import webdriver 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 page want click likes fitness = browser.find_element_by_css_selector("a[href*='fitness/']") fitness.click()  #here different codes i've tried use click of "like buttons"  #tried create list of elements "like" in id , click on of them.  didn't work. = browser.find_elements_by_id('like') x in range(0,len(like)):     if like[x].is_displayed():         like[x].click()  #tried create list class , click on within list , didn't work. = browser.find_elements_by_class_name('like_picto_unselected') like.click()  attributeerror: 'list' object has no attribute 'click' 

i know can't click on list because isn't single object, have no idea how i'd go otherwise.

your appreciated.

this unfortunate, got 2 halves of whole, cannot find multiple elements id id unique single element.

so combine iterative method use id , find elements classes get:

like = browser.find_elements_by_class_name('like_picto_unselected') x in range(0,len(like)):     if like[x].is_displayed():         like[x].click() 

i suspect work you. please tell me if not.


Comments