在我的购物机器人代码中运行其余代码之前,是否可以强制页面加载下一页?

时间:2019-08-01 19:56:23

标签: javascript ajax google-chrome bots

我正在创建一个机器人来购买停车证,但是我无法调用该函数来填写第二个付款步骤,因为该机器人无法抓取它需要输入数据的字段,因为字段尚未加载。因此,我可以强制页面加载下一步/页面然后运行我的功能吗?

我已尝试进行计数,以便在点击发生后进入第二步付款并再次运行该程序,它会运行该函数,但这不起作用,因为一旦变量被重置为零,付款页面第二步加载。我注意到,单击第一页上的按钮会运行ajaxRequest(),然后转到第二页,但是我对ajax并不熟悉,但是我认为使用它可以解决我的问题。我曾尝试在程序中添加暂停,以查看是否只需要等待,但是暂停只会停止付款过程的下一步。我不确定是否有人可以访问此网站,因为它与学校有关,但实际付款部分的链接为:https://www.schoolpay.com/parent/pay。主页是https://www.schoolpay.com

function fillOutBill(){

    var creditCardNum = "0000000000000000";
    var expMonth = "01"; // a string in format with two digits ex. 01, 02, 11, 12
    var expYear = "2019"; // a string in format with four digits from 2019 to 2039
    var ccvNum = "000"; // a string in format with 3 digits from 000 to 999 ex. 123

    console.log("start of filling out the bill");
    //click the credit card dropdown
    var creditButton = document.getElementsByClassName("payment-button cc");
    creditButton[0].click();

    console.log("credit drop down clicked");

    //fill out credit card info
    creditCardBox = document.getElementById("cc_pan");
    creditCardBox.value = creditCardNum;
}


if (url == "https://www.schoolpay.com/parent/pay"){
    document.getElementsByClassName("mpn-button6 blue to-step-2 fl-right")[0].click();


    fillOutBill(); 
}

进入付款屏幕后,我单击付款第二步,它将运行其余代码,然后进入下一个屏幕。进入下一步后,我需要运行fillOutBill()函数,但是链接不会更改,因此无法像我在程序其他地方所做的那样使用chrome.runtime.sendmessage()进行重定向。运行此功能会导致此错误

  

“未捕获的TypeError:无法读取未定义的属性'click'”

这告诉我该页面尚未加载,因为它无法找到其元素。

请让我澄清是否不清楚。

0 个答案:

没有答案