Мне нужно чтобы драйвер прокликал на все элементы на странице и спарсил отобразившуюся по клику информацию. Для этого нашел элементы по XPath и сохранил их в лист, чтобы написать к нему for loop. Все работало как надо, когда на странице было небольшое количество элементов - 22. Как только элементов стало больше, в моем листе сохраняется только часть из них и соответственно больше половины элементов не прокликивается. Код отрабатывается и не выдает никакой ошибки. Как это исправить?
# login function
def login(email,password):
driver.get('https://crm.tender-win.ru/account/logon')
driver.find_element_by_id('email').send_keys(email)
driver.find_element_by_id('password').send_keys(password)
driver.find_element_by_id('btnLogin').click()
df = []
login('somelogin','somepassword')
driver.get('https://crm.tender-win.ru/tenders/new')
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'MyTenderMenuTabsInfo')))
tenders = [driver.find_elements_by_xpath("//div[@class='panel card ']")
or driver.find_elements_by_xpath("//div[@class='panel card new']")][0]
for tender in tenders:
tender.click()
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, 'tenderCurrencyCode')))
data = driver \
.find_element_by_xpath('//*[@id="infoScroll"]/div/div[3]/div[2]/table') \
.get_attribute('outerHTML')
df1 = pd.read_html(data)
df.append(df1)
print(df)