为什么send_keys不会进入注释框?

时间:2019-05-06 22:55:25

标签: python selenium selenium-webdriver instagram

我正忙于创建一个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的网络浏览器上,当尝试运行该部分代码时会显示一条消息。 “上传失败。只能上传图像。”。因此,我认为这不是正确的格式。我要去哪里错了?任何帮助都将是惊人的!

1 个答案:

答案 0 :(得分:0)

使用Selenium时要牢记一些事情,例如等待一段时间。 Selenium代码的执行速度非常快,但是当您必须在元素上找到网页时,它将取决于Internet和硬件的速度。因此,为避免出现“ No Such Element”错误,应添加{{1} }或sleep()命令,直到某些元素可见。我更喜欢使用wait。 如果您在谈论注释部分,请确保在开始发送密钥之前先单击它,以免出现错误。 here描述了一个非常相似的漫游器。

该代码段为:

time.sleep(time_amount_in_sec)

希望会有所帮助。

注意-这是一种古老的方法,因此请尝试相应地更改类别,因为它们经常更改网站类别。