Как я мог l oop это для l oop по всем предметам? - PullRequest
0 голосов
/ 27 апреля 2020

Обычно этот 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) работает хорошо и печатает все элементы, но остальная часть кода работает только для первого элемента списка ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...