我正忙于创建一个Instagram机器人,该机器人会自动对我的Instagram feed中的帖子发表评论。问题是,当我尝试将send_keys发送到注释框时,它不起作用。我设置了登录屏幕以发送密钥,它可以正常工作,但是为什么此步骤不起作用?
这是我的代码:
def send_comment(self):
self.browser.get('https://www.instagram.com/')
actionChain = webdriver.ActionChains(self.browser)
comment = self.browser.find_elements_by_css_selector('form input')[0]
comment.send_keys("Great")
comment.send_keys(Keys.ENTER)
print('sent comment')
这是出现的错误:
selenium.common.exceptions.WebDriverException: Message: invalid argument:
File not found : Great
因此,我认为它可能正在寻找文件路径。我创建了一个文本文档,其中包含我想提交的注释,并括在括号内(标准Python格式)。以这种格式:
comment.send_keys("C:/Users/bbrown/Desktop/comment_doc.txt")
但是,这给了我一个不同的错误:
selenium.common.exceptions.WebDriverException: Message: invalid argument:
在打开Instagram的网络浏览器上,当尝试运行该部分代码时会显示一条消息。 “上传失败。只能上传图像。”。因此,我认为这不是正确的格式。我要去哪里错了?任何帮助都将是惊人的!
答案 0 :(得分:0)
使用Selenium时要牢记一些事情,例如等待一段时间。 Selenium代码的执行速度非常快,但是当您必须在元素上找到网页时,它将取决于Internet和硬件的速度。因此,为避免出现“ No Such Element”错误,应添加{{1} }或sleep()
命令,直到某些元素可见。我更喜欢使用wait
。
如果您在谈论注释部分,请确保在开始发送密钥之前先单击它,以免出现错误。 here描述了一个非常相似的漫游器。
该代码段为:
time.sleep(time_amount_in_sec)
希望会有所帮助。
注意-这是一种古老的方法,因此请尝试相应地更改类别,因为它们经常更改网站类别。