Search code examples
pythonseleniumgoogle-chromexpathwebdriver

Selenium Multiple Elements Selection Python


I am trying to extract all available elements for the Xpath, and I did try element with 's' and without and cant seem to make it work. being 'Element' its alright but only returns me the first result and with 'Elements' it gives me an error : "AttributeError: 'list' object has no attribute 'find_elements'"

My code : from selenium.webdriver.common.by import By from selenium import webdriver

url = 'https://automira.ro/dealeri-autorizati/lista'

PATH = 'C:\\Users\\czoca\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Python 3.6\\chromedriver.exe'

driver = webdriver.Chrome(PATH)
driver.get(url)

driver.maximize_window()# For maximizing window
driver.implicitly_wait(100)# gives an implicit wait for 20 seconds

dealers = driver.find_elements(By.XPATH, '/html/body/div[4]/div/div[3]/div/div[1]')

for dealer in dealers:
    name = dealer.find_elements(By.XPATH, "/html/body/div[4]/div/div[3]/div/div[1]/div/div/h4/a").text
    email = dealer.find_elements(By.XPATH, '/html/body/div[4]/div/div[3]/div/div[2]/div/div/div[3]/a').text
    phone = dealer.find_elements(By.XPATH, '/html/body/div[4]/div/div[3]/div/div[2]/div/div/div[2]/a').text
    print(name,email,phone)

Any ideias?

Thanks!


Solution

  • find_elements method returns a list object. you can iterate on list object to get all the elements you need.

    for n in name: print(n.text)