如何解决将数据存储到数组中时出错,第一次值迭代后无法执行循环-NodeJS
遇到循环问题,请参见以下示例:
// Example (This is what prints out in the console)
User Input: Hello,Stack Overflow //stored as text[]
var textbycomma = [] = text.toString().split(',');
textbycomma[] = ['Hello','Stack Overflow']
这是一个循环,用于发送用户输入的第一条消息(Hello)
,然后退出循环。
for (let k = 0; k < 2; k++) {
// I am unable to make it dynamic so let's take 2 as an example
await dmb.page.waitForSelector(
"a > div > div.Igw0E.rBNOH.YBx95.ybXk5._4EzTm.soMvl > div[class]"
);
await dmb.page.click(
"a > div > div.Igw0E.rBNOH.YBx95.ybXk5._4EzTm.soMvl > div[class]"
);
await dmb.page.waitFor(2000);
for (let i = 0; i < textbycomma.length; i++) {
let type = textbycomma[i];
await dmb.page.waitForSelector('textarea[placeholder="Message..."]');
await dmb.page.type('textarea[placeholder="Message..."]',type,{
delay: 100,});
let ig = await dmb.page.$x('//button[contains(text(),"Send")]');
await ig[0].click();
await dmb.page.waitFor(2000);
let readurls = [];
readurls[i] = dmb.page.url();
console.log(readurls);
if ((i = textbycomma.length)) {
break;
}
}
await dmb.page.goto("https://page.com/page-example");
}
await dmb.browser.close();
控制台输出:
for loop (i) = 0,0 // Prints zero both the times since it breaks out of the loop
readurls[i] = ['url1'] -- next iteration ['url2'] // it does not save url1 and url2 as a single array
我要使此node.js
脚本每隔1小时运行一次,检查数组URL并向它们发送第二条消息(Stack Overflow)
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。