TypeError: cannot unpack non-iterable WebElement object Selenium

posts = driver.find_elements(locate_with(By.CSS_SELECTOR, "a").below(newFirstText).above(footer))
            while isPostFound == False:
                postURLs = {}
                for x in posts:
                    try:
                        y = x.get_attribute('href')
                        postURLs[x] = y
                    except:
                        pass
                for k,v in postURLs:
                    if k not in postsLiked:
                        driver.find_element(locate_with(By.CSS_SELECTOR, "div.eLAPa > div._9AhH0").below(v)).click()
                        isPostFound = True
                    else:
                        isPostFound = False
                        pass

Я нахожу все ссылки на сайте по тегу а и получению атрибута href. Я заношу в словарик: WebElement: Ссылка. Проверяю ссылку на наличие в списке, а затем должен искать пост после WebElement, соответствующего ссылке. Однако получаю ошибку:

for k,v in postURLs: TypeError: cannot unpack non-iterable WebElement object"

Возможно ли распаковать WebElement из словарика?


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

Автор решения: ПИТОНИСТ версия-3-8

Ошибка в этой строке:

for k,v in postURLs:

Нельзя писать for переменная(-ые) in словарь. Это Вам не список.

Нужно сделать, как сказал @GrAnd в комментарии:

for k,v in postURLs.items():

Это если Вам нужно пройтись по значениям словаря. Если же (не в этом случае) нужно пройтись по ключам словаря, сделайте так:

for k,v in postURLs.keys():
→ Ссылка