我正在创建一个机器人来购买停车证,但是我无法调用该函数来填写第二个付款步骤,因为该机器人无法抓取它需要输入数据的字段,因为字段尚未加载。因此,我可以强制页面加载下一步/页面然后运行我的功能吗?
我已尝试进行计数,以便在点击发生后进入第二步付款并再次运行该程序,它会运行该函数,但这不起作用,因为一旦变量被重置为零,付款页面第二步加载。我注意到,单击第一页上的按钮会运行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'”
这告诉我该页面尚未加载,因为它无法找到其元素。
请让我澄清是否不清楚。