无法使用javascript单击确认框上的按钮

时间:2017-10-22 23:57:22

标签: javascript

我正在建造一个机器人。我得到了这个html页面,我点击了一个按钮(键入="提交")。如果是这样,它会弹出一个小窗口,就像一个确认框。我无法查看此确认框的来源,因为它没有显示在html代码上。但是从javascript控制台我从消息框中获取此代码:

<div class="confirmation-box" id="pop" role="dialog" aria-labelledby="confirmation-msg">
<div><div style="text-align: left"></div>
<div class="confirmation-buttons">
<button class="btn evt-confirm-btn btn-confirm-yes" aria-label'confirmar'="">Confirmar</button>
<button class="btn evt-cancel-btn btn-confirm-no" aria-label'cancelar'="">Cancelar</button>
</div></div></div>

我已经尝试了几个javascript代码,但我永远无法点击“确认条件”#39;按钮。似乎javascript代码在弹出确认框之前运行,并且不识别按钮的ID和类。

我的代码:

// Clicks the button on the html page, working OK
....{document.forms[0].sell.value = y-x; 
document.querySelector('input[value="Calcular melhor oferta "]').click();  

现在出现一个确认框,我尝试使用下一个代码点击确认框中显示的按钮,但没有成功:

document.getElementById("pop").getElementsByClassName("confirmation-buttons").getElementsByClassName("evt-confirm-btn btn-confirm-yes")[0].click();}

document.getElementsByClassName("evt-confirm-btn")[0].addEventListener("click", function(){console.log("hello");});

document.getElementsByClassName("evt-confirm-btn")[0].click();}

似乎这个代码在确认框出现之前运行。

1 个答案:

答案 0 :(得分:0)

我使用以下方法解决它:

var timeOff=1000;
setInterval(time, timeOff);
function time()
{ document.getElementById("pop").getElementsByClassName("evt-confirm-btn btn-confirm-yes")[0].click();}}

这会使代码延迟1秒,足以在运行其余代码之前运行小窗口。