我怎么能得到元素内部文本后dom被刷新后提交按钮?



我正在自动化任务(填写表单并提交数据,然后从文本文件逐行读取数据的结果消息)。在通过控制台运行我的JS代码时,直到点击提交按钮之前,一切都工作正常。点击提交按钮后,我可以看到HTML正在重新加载新数据,URL从www.example.com更改为www.example.com/requests/12345,然后点击后的下一步不受尊重。

我想可能是因为我使用了:

document.getElementByID("btn-submit").click();

改成

$("#btn-submit").click().trigger('change');

但还是一样的问题。

我尝试使用sleep函数和setTimeout来等待新的HTML加载,但这根本没有帮助:(

任务是简单的步骤,直到按钮单击所有工作完美,我只在提交按钮后卡住,因为我想获得点击提交按钮后显示在页面上的结果。

有什么想法是我做错了吗?

我试图得到的元素是在div是空的提交按钮被点击之前,像这样

<div id="message-bar">

</div>

提交按钮被点击后,它被填充如下(URL也被更改为链接www.example.com/requests/12345-当然,结果元素不会显示,如果按钮不被点击:

<div id="message-bar">
<div id="alert-success" class="alert alert-success">
<button type="button" class="close" data-dismiss="alert">×</button>
<div class="text alert-text">Request approved!</div>
<ul id="bullet-items"><li>Thank you</li></ul>
</div>
</div>

我试图检查元素是否为空,然后得到元素innerText,但似乎我的代码被删除时,页面URL更改后提交按钮:

if (document.getElementById("message-bar").innerText != "") {
// do something
} 

Thank you so much

Try

$("#btn-submit").click(function(event){
event.preventDefault();
})

或不使用jQuery

var btn = document.getElementById('btn-submit');
btn.addEventListener('click',function(event){
event.preventDefault();
})

尝试使用。preventdefault()事件

https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)。

据我所知,您需要的内容不是点击之后,而是点击触发之后。这是同一个Q,回答说。基本上,你等待mod发生,然后"读取"元素内容。

为了解决我的问题,我想到使用window.open("URL")通过为它创建一个变量,然后使用它来处理我在新窗口上的整个自动化过程,我能够从新窗口

获得所有结果消息
var newWindow = window.open("the URL");
newWindow.$('input[id="input"]').val("1234").trigger('change');
etc...

最新更新