【问题标题】:iMacros doesn't recognize facebook comment textboxiMacros 无法识别 facebook 评论文本框
【发布时间】:2014-02-27 19:22:10
【问题描述】:
我一直在尝试自动化在 facebook 上回复 cmets 的过程。我让iMacros成功点击了“回复”按钮,但是当涉及到评论回复本身或在评论中上传照片时,它根本无法识别标签。实际上,我必须手动单击评论或照片按钮一次并取消它,以便 facebook 将输入的 html 状态更改为 imacros 看到的内容。我不知道为什么会这样。
我尝试过不使用 ID 选择器的传统录制模式,我也尝试过使用完整 HTML 标记的传统录制,但主要问题是它没有看到该评论部分。
我知道如何用 javascript 和 imacros 编写代码,所以如果有 JavaScript 解决方案,那会有所帮助。
【问题讨论】:
标签:
javascript
html
facebook
imacros
【解决方案1】:
尝试使用实验记录和事件命令。并取消选中 "Favor elemens ID in selectors" 。此外,当您使用完整的 HTML 标记时,请删除不必要的内容。
Facebook 有随机的 HTML 标签,比如 ID,因此会“混淆”脚本。
如果失败,请尝试http://wiki.imacros.net/XPATH。
【解决方案2】:
我对这种方式进行了一些检查,并得出了一些不错的结果。
以下 imacro 代码将回复评论并添加图片。
您所要做的就是用您的图像位置替换代码第 16 行上的“C:\1.jpg”,并用您自己的文本编辑第 23 行上的文本“nice”,您可以将 csv 文件用于 cmets如果你愿意,我可以指导你。
我试过这个,它工作得很好,只是得到一个允许评论回复的帖子并开始测试。
如果您对代码有任何疑问,请提出,我会尽力回复您。
SET !EXTRACT_TEST_POPUP NO
SET !ERRORIGNORE YES
SET !EXTRACT NULL
TAB T=1
TAG POS=1 TYPE=form ATTR=CLASS:commentable_item<SP>autoexpand_mode EXTRACT=HTM
Set !VAR4 Eval("var exp = '{{!EXTRACT}}'.match(/ id=.(.*?)\" /); exp[1];")
SET !EXTRACT NULL
TAG POS={{!LOOP}} TYPE=a ATTR=CLASS:UFIReplyLink
TAG POS={{!LOOP}} TYPE=UL ATTR=CLASS:<SP>UFIReplyList EXTRACT=HTM
Set !VAR1 Eval("var exp = '{{!EXTRACT}}'.match(/UFICommentPhotoIcon.(.*?)class/); exp[1];")
Set !VAR1 Eval("var exp = '{{!VAR1}}'.match(/data-reactid=.(.*?)\"/); exp[1];")
TAG POS=1 TYPE=i ATTR=data-reactid:{{!VAR1}}
SET !EXTRACT NULL
TAG POS=1 TYPE=i ATTR=data-reactid:{{!VAR1}} EXTRACT=HTM
Set !VAR2 Eval("var exp = '{{!EXTRACT}}'.match(/ id=.(.*?)\"/); exp[1];")
TAG POS=1 TYPE=INPUT:FILE FORM=ID:{{!VAR4}} ATTR=id:{{!VAR2}} CONTENT=C:\1.jpg
SET !EXTRACT NULL
TAG POS={{!LOOP}} TYPE=textarea ATTR=title:Write<SP>a<SP>reply...
TAG POS={{!LOOP}} TYPE=textarea ATTR=title:Write<SP>a<SP>reply... EXTRACT=HTM
Set !VAR3 Eval("var exp = '{{!EXTRACT}}'.match(/ id=.(.*?)\"/); exp[1];")
wait seconds=3
TAG POS={{!LOOP}} TYPE=textarea ATTR=title:Write<SP>a<SP>reply... CONTENT=nice
EVENTS TYPE=KEYPRESS SELECTOR="#{{!VAR3}}" KEYS="[13]"