Обычно этот for loop
должен работать, если на странице отображается раскрывающееся меню. Я мог бы заставить его работать только для одного элемента списка, но не смог сделать его l oop поверх всех выпадающих элементов.
Как я могу заставить его работать для всех выпадающих элементов?
# IF THE DROPDOWN IS SHOWED
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 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')
# EACH ITEM IN DROPDOWN LIST
benefs = range(len(dropd))
# PRINT AND LOOP FOR EACH ITEM
for self.benef in benefs:
print(dropd[self.benef].text)
dropd[self.benef].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)
print(dropd[self.benef].text)
работает хорошо и печатает все элементы, но остальная часть кода работает только для первого элемента списка ...