python - Python Selenium - 'WebElement'对象不可迭代
问题描述
我正在尝试获取页面上所有帖子的 URL,以便我可以在另一个选项卡中打开它们,有人可以帮忙吗?
def opening(self):
bot = self.bot
bot.maximize_window()
bot.get('https://www.instagram.com/explore/tags/'+hashtag+'/')
time.sleep(2)
def posts(self):
bot = self.bot
hrefs = bot.find_element_by_tag_name('a')
pic_hrefs = [elem.get_attribute('href') for elem in hrefs]
pic_hrefs = [href for href in pic_hrefs if hashtag in href]
time.sleep(1)
print(hashtag +' pictures: ' + len(pic_hrefs))
我是初学者,所以请不要取笑我,感谢所有帮助的人!
解决方案
这一行:
hrefs = bot.find_element_by_tag_name('a')
返回一个 selenium web 元素。它不是列表,也不是任何其他可迭代元素。换句话说,您将无法使用for 循环遍历它。打印它,你会看到它是什么。改用这一行,它将返回一个列表。请注意,我添加了一个s。
hrefs = bot.find_elements_by_tag_name('a')
还有,你是不是打错字了href
?不应该hrefs
吗?那里的最后一个实例:
pic_hrefs = [href for href in pic_hrefs if hashtag in href]
推荐阅读
- reactjs - React JS TypeError:无法读取 areHookInputsEqual 处未定义的属性“长度”
- azure - 在 Logic App Designer 中运行 My 函数时出现错误,遵循 azure 示例项目文档
- azure - 如何将sql server的bacpac文件迁移到雪花
- python - 加入 lambda 函数中的两列
- php - 在主题的 style.css 之后加载客户 header.css
- python - OpenCV 概率霍夫线变换使用 C++ 和 Python 给出不同的结果?
- reactjs - 测试覆盖率在 React 应用程序中没有按预期工作
- sql - 使用 PostgreSQL 查询更新复杂 JSONB 对象以删除子子属性
- reactjs - Ant Design Form 组件不显示输入值
- typescript - 参数类型 URL 不可分配给参数类型字符串