【发布时间】:2019-05-06 22:55:25
【问题描述】:
我正忙于创建一个 Instagram 机器人,它会自动对我的 Instagram 供稿中的帖子发表评论。问题是当我尝试将_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 的网络浏览器上,它会在尝试运行该部分代码时显示一条消息。 “上传失败。只能上传图片。”。所以我不相信这是正确的格式。我哪里错了?任何帮助都会很棒!
【问题讨论】:
-
似乎是您指向错误的元素。您是否在开发工具中检查了 css。
-
“开发工具”是什么意思?我通过 chrome 检查 html 源代码,它指向一个
-
您可以尝试将线路更改为
comment = self.browser.find_element_by_css_selector('form input:nth-of-type(1)')。尝试添加预期条件以确保该元素已加载到页面上。 -
开发工具,正如@supputuri 所提到的,是一个包含在 FF 或 Chrome(和其他)中的工具,可以帮助您检查 HTML 的代码,它允许您在页面上执行一些 javascript 命令.了解它是必不可少的。请看:developers.google.com/web/tools/chrome-devtools
标签: python selenium selenium-webdriver instagram