Обычно это для l oop должно работать, если на странице отображается выпадающее меню. Я мог бы заставить его работать только для одного элемента списка, но не смог сделать так, чтобы он * l oop на все выпадающие элементы.
Как я могу заставить его работать на все выпадающие элементы?
# IF THE DROPDOWN IS SHOWED FOR THIS CLIENT
if self.driver.find_element_by_xpath('/html/body/main[1]/nav/ul/li[1]/span').is_displayed():
qntbenef = 'SIM'
print('Mais de um beneficio')
# DROPDOWN CLICK TO MAKE ITEMS LIST VISIBLE
self.driver.find_element_by_xpath('/html/body/main[1]/nav/ul/li[1]/span').click()
# DROPDOWN LIST = DROPD
dropd = self.driver.find_elements_by_xpath('/html/body/main[1]/nav/ul/li[1]/ul')
# PRINT THE ITEMS OF THE DROPDOWN
for item in dropd:
print(item.text)
item.click()
nome = self.driver.find_element_by_xpath(
"/html/body/main[1]/div[@id='dashboard'][not(contains(@class, 'left hide'))]"
"/div[1]/div[1]/div[1]/h2").text
print(nome)
Код работает до печати (item.text) и печатает все элементы выпадающего меню, но их код взаимодействует только с первым элементом меню ...
Вот полный код: https://github.com/moisesfelipee/web-scraping/blob/master/1.py