如果不出意外,您总是可以每隔一段时间轮询“继续”元素的存在:
function clickContinue() {
var button = document.getElementById("continue");
return button ? button.click() : setTimeout(clickContinue, 100);
}
document.getElementById("submitLogin").click();
clickContinue();
如果你走这条路,你可能想要包括一个故障保护,这样它就不会运行太久,以防发生意外情况。像这样的东西应该工作:
clickContinue.interval = 100; // Look for "continue" button every 0.1 second
clickContinue.ttl = 10000; // Approximate time to live: 10 seconds ~ 10,000 ms
clickContinue.tries = clickContinue.ttl / clickContinue.interval | 0;
function clickContinue() {
var button = document.getElementById("continue"),
interval = clickContinue.interval;
return button ? button.click() :
clickContinue.tries-- && setTimeout(clickContinue, interval);
}
// ...
不过,请查看 PayPal 的 API 文档,看看它们是否提供了一种设置回调来处理此问题的方法。这种轮询技术可能只应作为最后的手段使用。