for i, item in enumerate

Сразу скажу что я новичок в программировании. Вот что я написал. Задача была такова что когда item 1-25 доходит то sell то список начинает срабатывать сначала а если driver.find_elements_by_xpath то список продолжается. А у меня вышло что когда он доходит то item (предположим 5) и делает sell, после он продолжает список с item 6. Подскажите где ошибка? Спасибо заранее.

while True:                                                                                                                     #Цикл вечного повтора
driver.get(linkinventory)
try:
    try:
        def click_element(items):
            
            driver.find_element_by_css_selector(items).click()
            sleep(1)


        if  __name__ == "__main__":
            items = [
            Item1, Item2, Item3, Item4, Item5, Item6, Item7, Item8, Item9, Item10
        , Item11, Item12, Item13, Item14, Item15, Item16, Item17, Item18, Item19, Item20
        , Item21, Item22, Item23, Item24, Item25
        ]
            for i, item in enumerate(items, 1):
                print(f'{i}: {item}')
                #click_element(item)
                sleep(1)
                if driver.find_elements_by_xpath("//*[contains(text(), 'Наклейка')]"):
                    pass
                else:
                    Sell()
                
                 
    except NoSuchElementException:
        print("123")

except NoSuchElementException:
    print("456")
    pass

Ответы (1 шт):

Автор решения: Adam Bright

Попробуйте вместо if driver.find_elements...: pass; else: Sell() написать так, а так же добавить break

if not driver.find_elements_by_xpath("//*[contains(text(), 'Наклейка')]"):
    Sell()
    break

Так же, не совсем понимаю ваш код, уровень вложений и if name = main по центру, возможно вы хотели написать так:?

def click_element(items):
    driver.find_element_by_css_selector(items).click()
    sleep(1)


def main():
    driver.get(linkinventory)
    try:
        try:
            items = [
                Item1, Item2, Item3, Item4, Item5, Item6, Item7, Item8, Item9, Item10,
                Item11, Item12, Item13, Item14, Item15, Item16, Item17, Item18, Item19,
                Item20, Item21, Item22, Item23, Item24, Item25,
            ]
            for i, item in enumerate(items, 1):
                print(f'{i}: {item}')
                # click_element(item)
                sleep(1)
                if not driver.find_elements_by_xpath("//*[contains(text(), 'Наклейка')]"):
                    Sell()
                    break
        except NoSuchElementException:
            print("123")
    except NoSuchElementException:
        print("456")

if __name__ == "__main__":
    while True:
        main()

→ Ссылка