我正在尝试扩展Facebook墙,然后在扩展墙上显示所有评论。
手动,这可以通过访问墙壁的链接然后连续向下滚动来实现,从而逐步显示页面,直到显示所有页面。然后,将选择View * more comments
形式的可选文本的每个实例,从而使页面中的所有注释完全显示。
我试图让iMacros的向下滚动事件注册没有成功,我已经基本成功地选择了文本View 1 more comments
并使用以下脚本:
VERSION BUILD=8820413 RECORDER=FX
TAB T=1
URL GOTO=https://www.facebook.com/FACEBOOKID1?and=FACEBOOKID2
TAG POS={{!LOOP}} TYPE=SPAN ATTR=TXT:View<SP>1<SP>more<SP>comments
如何自动化向下滚动行为?如何改进当前扩展评论以更一般方式行事的尝试?
答案 0 :(得分:0)
我使用下面的js脚本:
// set the number of scrolls you prefer
var scrollNumber = 1;
// scroll
for (i = 1; i <= scrollNumber; i++) {
window.scrollTo(0, i*10000);
iimPlayCode("WAIT SECONDS=2");
}
// expand comment boxes with 50 less comments
var doc = window.document;
var cmtBoxes = doc.getElementsByClassName("UFIBlingBox uiBlingBox feedbackBling");
for (i = 1; i <= cmtBoxes.length; i++) {
var cmtLabel = cmtBoxes[i - 1].getAttribute("aria-label");
var cmtNumber = cmtLabel.match(/.*\s(\d+)\scomments.*/)[1];
if (cmtNumber < 50)
iimPlayCode('TAG POS=' + i + ' TYPE=A ATTR=CLASS:"UFIBlingBox uiBlingBox feedbackBling"');
}
// count
var cmtPostNumber = 0;
for (i = 0; i < doc.links.length; i++) {
if (doc.links[i].innerHTML.match(/View\s\d+\smore\scomment/) != null)
cmtPostNumber++;
}
// view
for (i = 1; i <= cmtPostNumber; i++) {
var M = "SET !TIMEOUT_STEP 1" + "\n";
M += "TAG POS=1 TYPE=A ATTR=TXT:View<SP>*<SP>more<SP>comment*" + "\n";
M += "WAIT SECONDS=1";
var ret = iimPlayCode(M);
if (ret != 1) break;
}
// go to the top
window.scrollTo(0, 0);