当它出现在页面上时,单击按钮/提交

我有一个页面,其中按钮或提交表单将在未知时间出现。 我不知道按钮/表单的id,class或xpath但我知道按钮的文本是什么。 它会说:“ Click here ”。 该页面只有该按钮和一些文本。

如何创建一个尽可能快的脚本会在出现时单击按钮?

这只是一个例子,我知道getElementByText/getElementByValue不存在:

   
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint

 var interval = setInterval(function () { if (document.querySelectorAll("input[value='Click me']").length > 0) { document.querySelectorAll("input[value='Click me']")[0].click(); clearInterval(interval); } }, 100); 

希望这可以帮助..

你标记了这个jQuery – 它可以很简单

 // The code you need var tId; $(function() { tId=setInterval(function() { var $but=$("[value='Click me']"); if ($but.length>0) { console.log("found"); clearInterval(tId); $but.click(); } },100) }); //------------------------------------------------ // other code that inserts and shows it's clicked $(function() { $("#container").on("click","[value='Click me']",function() { console.log("clicked"); }); setTimeout(function() { $("#form1").append(''); },3000); }); 
  
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint
occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita

您可以选择带有attr /值选择器的按钮

 $('input[type="button"][value="Click here"]').on('click',function(){ //code }); 

也许它会有所帮助:

 $('input[value="ClickMe"]').click(); 
   

由于表单/按钮将在未知时间出现,您可以使用MutationObserver并监听DOM更改。

在片段中我使用了setTimeout来模拟动态添加的按钮。

 var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; var element = document.querySelector('#target'); setTimeout(function() { $(element).append(''); }, 3000) var observer = new MutationObserver(function(mutations) { mutations.forEach(function(mutation) { if (mutation.type == "childList") { console.log('Button found do the needful'); //$(":button:contains('Click here')").get(0).click(); } }); }); observer.observe(element, { childList: true //configure it to listen to attribute changes });