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():