将while循环与元素childNodes.length一起使用,直到它与指定的数字相等为止不起作用(无法退出while循环)

时间:2018-11-30 11:17:34

标签: javascript html

我正在尝试构建Instagram脚本以检索不关注您的人的列表。

我的想法如下:

->打开关注者选项卡->向下滚动直到所有关注者都显示在DOM中->将其添加到数组中->关闭选项卡->打开以下选项卡->向下滚动直到显示以下所有内容在DOM中->将它们添加到数组中->比较数组->显示谁不跟着你回来

这是我到目前为止所做的:

    selectors = {
         modal: "Y8-fY",
         objList: "isgrP",
         divList: "PZuss"
    };
    x = {};
    x.following = [];
    x.followers = [];
    numberOfFollowers = Number(document.getElementsByClassName(selectors.modal)[1].querySelector('a').querySelector('span').title);
    numberOfFollowing = Number(document.getElementsByClassName(selectors.modal)[2].querySelector('a').querySelector('span').innerHTML);

var openFollowersTab = function()
{
    document.getElementsByClassName(selectors.modal)[1].querySelector('a').click();
}

openFollowersTab();

var showFollowers = function (x)
{ 
    document.querySelector("." + selectors.objList).scrollTop = 200;
    document.querySelector("." + selectors.objList).scrollTop = -200;
    while(document.querySelector(".PZuss").childNodes.length != x)
    {
        document.querySelector("." + selectors.objList).scrollTop += 1000;
    }
}

这段代码有两个小问题,我不知道该如何处理。 首先,如果我在脚本中调用showFollowers(),则由于while循环而导致页面中断。我似乎无法理解为什么。在我的脑海中,这应该一直在起作用。在该“ .PZuss”中,所有关注者都位于li位置。因此,在与numberOfFollowers相等之前,它应该向下滚动。

我知道每个问题应该只有一个问题,但是这是一个很小的问题,我发现它比第一个问题更奇怪-直到我介绍了while条件(并且代码有效,但不是我想要的)时,在它说找不到.PZuss的代码中调用了showFollowers())。 .PZuss在followersTab打开后出现在DOM中,所以我认为我必须做这样的事情,因此首先打开选项卡:

setTimeout(showFollowers(numberOfFollowers), 10000);
但它也不起作用。如果在关闭OpenFollowersTab()之后在控制台中运行showFollowers(),则一切正常。 (再次,没有该while循环)。

所以主要的问题是为什么WHILE不起作用,因为我发现这很奇怪。如果您可以让我了解如何等待“关注者”选项卡中的DOM加载,那也很好,如果没有,那很好,我会找到解决方法。

非常感谢您的宝贵时间! 祝你有美好的一天!

0 个答案:

没有答案