Здравствуйте. Возникла проблема с селениумом
На сайте есть карточки с информацией, я забрал строчку с одной карточки:
name = driver.find_element(by=By.CLASS_NAME, value='st--c-YygXh')
и поместил их в массив через for:
for name in all_items:
name = driver.find_element(by=By.CLASS_NAME, value='st--c-YygXh')
names.append(name.text)
print(names)
При выведении массива он выводит огромное количество строчек с одинаковым значением которое я забрал. Не подскажете как сделать перебор со всеми карточками и помещать строчку с каждой карточки в массив
весь код:
import selenium
from selenium import webdriver
from selenium.webdriver import chrome
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.options import Options as ChromeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
options = Options()
options.add_argument("--disable-extensions")
url = 'https://foundation.app/profiles?sortBy=users_sort_total_vol_desc'
options = ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
options = Options()
def find_element_by_class_name(url):
driver.get(url=url)
driver.maximize_window()
time.sleep(2)
all_items = driver.find_element(by=By.CLASS_NAME, value='st--c-egZzdr').text
names = []
#button = driver.find_element(by=By.CLASS_NAME, value='st--c-PJLV-ijYGlaa-css')
#button.click()
#time.sleep(3)
#inst = driver.find_element(by=By.CLASS_NAME, value='st--c-PJLV-icXRXMr-css')
#driver.back()
for name in all_items:
name = driver.find_element(by=By.CLASS_NAME, value='st--c-YygXh')
names.append(name.text)
#print(inst.text)
print(names)
driver.close()
#return driver.find_elements(by=By.CLASS_NAME, value='st--c-YygXh')
find_element_by_class_name(url='https://foundation.app/profiles?sortBy=users_sort_total_vol_desc')
ps. там еще есть закомментированные строчки с button, если будет не сложно расскажите как сделать тоже самое что я писал выше, но с button (button это целая карточка)
Ответы (1 шт):
Вместо name = driver.find_element(by=By.CLASS_NAME, value='st--c-YygXh') используй find_elements. Вернется список элементов. По нему потом пройдись еще раз и вытащи текст и добавь в новый список.