Клик по всем элементам кроме семи последних
Код кликает по всем .lmc__block, но как сделать так, чтоб клик производился по всем элементам, кроме последних семи элементов?
for country in driver.find_elements_by_css_selector(".lmc__block"):
if country.is_displayed():
country.click()
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
что мешает работать как со списками и сделать срез?
driver.find_elements_by_css_selector(".lmc__block")[:-7]
или если нужно только по отображенным отработать, то:
for country in [obj for obj in driver.find_elements_by_css_selector(".lmc__block") if obj.is_displayed()][:-7]:
country.click()
P.S.
а разве find_elements_by_css_selector не считается устаревшей и вместо нее лучше использовать find_elements?
Автор решения: ganz
→ Ссылка
res=[] #итоговый список
driver.find_elements_by_css_selector(".lmc__block"):
if country.is_displayed():
res.append(country) #наполняем список элементами
res=res[:-7] #укорачиваем список
for it in res:
res.click()
Так или иначе получаем список со всеми элементами, затем производим манипуляции (укорачивание), и кликаем. Так же есть вариант с применением функции filter и генератором.