我正在尝试让instagram的关注自动化。我转到个人资料,然后点击关注者链接。它打开一个模式类型div,并且有所有的追随者。它首先找到DOM中存在的所有后续按钮并单击它们。之后,它向下滚动,在DOM中找到更多的跟随按钮并单击它们。但是在滚动2-3次后,自动停止并给出此错误。
!可滚动的分区图像:https://imgur.com/6s3nGJs
附加以下代码,用于收集以下按钮并单击它们:
element(by.xpath("//div[@role='dialog']")).element(by.tagName("ul")).all(by.buttonText("Follow")).then(links => {
console.log("Links Length" + links.length);
if (links.length == 0) {
this.ScrollDown();
}
else {
for (let i = 0; i < links.length; i++) {
if (i >= links.length - 2) {
console.log("Scrolling Down");
browser.actions().sendKeys(protractor.Key.PAGE_DOWN).perform().then(function(){
console.log("Scrolled");
browser.sleep(3000);
});
break;
}
else {
browser.actions().mouseMove(links[i]).click().perform().then(function () {
console.log("Clicked on link " + (i + 1));
browser.sleep(3000);
});
}
}
this.followProfiles();
}
});ScrollDown:
console.log("Scrolling Down");
browser.wait(browser.actions().sendKeys(protractor.Key.PAGE_DOWN).perform().then(function () {
console.log("Scrolled down");
}), 90000);
browser.sleep(5000);
this.followProfiles();发布于 2019-06-01 11:50:25
您可以使用js的点击功能来点击您想要的内容。如果元素存在并且有宽和高(元素不能显示),可以使用此函数直接点击htlm元素。click():此功能为量角器功能,此功能的动作与单击鼠标左键的动作相同,因此元素刚刚出现并显示出来。但是js的点击函数可以在元素刚刚出现的时候点击html元素,虽然元素不能显示。点击js的函数:
browser.executeScript("arguments.click();",geocoding_switcher.getWebElement());
而且,量角器通常运行速度很快,所以你应该使用点击js函数来点击列表中所有的“跟随”按钮,这使得测试运行得很完美,不需要滚动到元素。在js中,有许多滚动功能。例如:
browser.executeScript("arguments.scrollIntoView();",category_label.getWebElement());
发布于 2019-06-01 00:55:36
这是因为您的测试花费的时间比为jasmine设置的默认超时时间要长。要增加此时间,您可以在量角器配置文件jasmineNodeOpts中添加以下内容:{ defaultTimeoutInterval: 480000 //这相当于6分钟//如果您的测试时间超过此时间,您可以增加此时间。}
https://stackoverflow.com/questions/55963627
复制相似问题