Javascript 异步函数中window.open()的多次迭代

Javascript 异步函数中window.open()的多次迭代,javascript,Javascript,所以,我正在开发一个简单的机器人,向几个Whatsapp联系人发送消息。我在Whatsapp网页中插入了下面的代码,它可以完美地处理一条消息。然后,当我使用sendMessageToPhoneList将其发送到电话号码数组时,它在第一条消息/迭代中工作正常,但下一条消息/迭代给我以下错误:Uncaught(in promise)TypeError:无法读取null的属性“document” function sendMessage(phone, encodedMessage) { re

所以,我正在开发一个简单的机器人,向几个Whatsapp联系人发送消息。我在Whatsapp网页中插入了下面的代码,它可以完美地处理一条消息。然后,当我使用sendMessageToPhoneList将其发送到电话号码数组时,它在第一条消息/迭代中工作正常,但下一条消息/迭代给我以下错误:Uncaught(in promise)TypeError:无法读取null的属性“document”

function sendMessage(phone, encodedMessage) {

    return new Promise(resolve => {
        var wppURL, wppPage;

        wppURL = "https://web.whatsapp.com/send?phone="+phone+"&text="+encodedMessage;
        wppPage = window.open(wppURL);

        var send = function() {

            var sendButton = wppPage.document.getElementsByClassName("_3M-N-")[0];

            if (sendButton) {
                sendButton.click();

                setTimeout(function() {
                    wppPage.close();    
                    resolve(true);

                }, 10000);

            } else {
                setTimeout(send, 1000);
            }
        };

        send();
    });
}

async function sendMessageToPhoneList(phoneList, encodedMessage) {
    for (i=0; i < phoneList.length; i++) {
        await sendMessage(phoneList[i], encodedMessage);
    }
}
功能发送信息(电话、编码信息){
返回新承诺(解决=>{
var wppur,wppage;
wppURL=”https://web.whatsapp.com/send?phone=“+phone+”&text=“+encodedMessage;
wppage=window.open(wppull);
var send=函数(){
var sendButton=wppage.document.getElementsByClassName(“_3M-N-”)[0];
如果(发送按钮){
sendButton.click();
setTimeout(函数(){
wppage.close();
决心(正确);
}, 10000);
}否则{
设置超时(发送,1000);
}
};
send();
});
}
异步函数sendMessageToPhoneList(电话列表、encodedMessage){
对于(i=0;i

代码有问题吗?有人能给我一些见解吗?谢谢

问题是chrome会再次打开同一个选项卡,所以即使您正在打开多个同名窗口,chome也不允许它更改您的代码,使您具有不同的窗口名,它应该会修复它

例如:

wppURL = "https://web.whatsapp.com/send?phone="+phone+"&text="+encodedMessage;
wppPage = window.open(wppURL, wppURL); // second parameter is for window name

问题是chrome会再次打开同一个选项卡,所以即使您打开多个同名窗口,chome也不允许它更改您的代码,使您具有不同的窗口名,并且应该修复它

例如:

wppURL = "https://web.whatsapp.com/send?phone="+phone+"&text="+encodedMessage;
wppPage = window.open(wppURL, wppURL); // second parameter is for window name

尝试使用
let wppur,wppage而不是
var wppur,wppage尝试使用
让wppur,wppage而不是
var wppur,wppage