如何从一下代码中用js获取弹出框btn按钮并在油猴中自动点击确定

img

div
  class="layui-layer layui-layer-iframe  layer-anim"
  id="layui-layer1"
  type="iframe"
  times="1"
  showtime="0"
  contype="string"
  style="z-index: 1090; width: 360px; height: 200px; top: 264px; left: 302.5px;"
>
  <div class="layui-layer-title" style="cursor: move;">
    请输入正确的答案
  </div>
  <div id="" class="layui-layer-content">
    <iframe
      scrolling="auto"
      allowtransparency="true"
      id="layui-layer-iframe1"
      name="layui-layer-iframe1"
      onload="this.className='';"
      class=""
      frameborder="0"
      src="/portal/lesson/exam"
      style="height: 102px;"
    ></iframe>
  </div>
  <span class="layui-layer-setwin">
    <a
      class="layui-layer-ico layui-layer-close layui-layer-close1"
      href=" "
    ></a >
  </span>
  <div class="layui-layer-btn layui-layer-btn-">
    <a class="layui-layer-btn0">确定</a >
    <a class="layui-layer-btn1">取消</a >
  </div>
  <span class="layui-layer-resize"></span>
</div>;

以上代码是该弹出框的代码,不需要填写数字,只需要要点击确定,弹出框就会消失,如何从以上代码中获取layui-layer-btn0的元素,并在油猴中自动运行点击确定以使弹出框消失,对应网址:http://huaiyang.hnjichujiaoyu.com/

引用chatgpt部分指引作答:
要使用JavaScript从给定的HTML代码中获取弹出框按钮并在油猴脚本中自动点击确定按钮,你可以按照以下步骤进行操作:

在油猴脚本中注入JavaScript代码来获取和点击按钮。确保你已经在油猴脚本管理器中创建了一个适用于该网站的脚本。

使用document.querySelector()函数通过CSS选择器获取弹出框按钮元素。在这种情况下,你可以使用".layui-layer-btn0"选择器来选择类名为"layui-layer-btn0"的元素。

使用HTMLElement.click()方法模拟点击操作。

以下是示例代码:

// ==UserScript==
// @name         自动点击弹出框确定按钮
// @namespace    http://huaiyang.hnjichujiaoyu.com/
// @version      1.0
// @description  自动点击弹出框确定按钮
// @match        http://huaiyang.hnjichujiaoyu.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 等待弹出框加载完成
    setTimeout(function() {
        // 获取弹出框确定按钮元素
        var confirmButton = document.querySelector('.layui-layer-btn0');

        if (confirmButton) {
            // 模拟点击确定按钮
            confirmButton.click();
        }
    }, 3000); // 等待3秒后执行,可以根据需要调整等待时间
})();

将上述代码复制粘贴到你的油猴脚本中,并确保脚本匹配的网址与你提供的网址一致。保存脚本后,访问该网址时,脚本会等待3秒钟后自动点击弹出框中的确定按钮。你可以根据需要调整等待时间来确保弹出框已完全加载。

获取页面dom还还说,通过dom获取就好,比较麻烦的是验证的问题,针对这种运算的破解,要使用ocr识别将公式计算出来,然后得出结果,将结果赋值到目标输入框内,然后模拟提交。大致思路是这样。

油猴对你自定义的页面根本没有访问权限,真的能实现吗

要从给定的HTML代码中获取具有特定类名的元素,并在油猴脚本中自动点击该按钮,你可以使用JavaScript和油猴插件来实现。以下是实现此目标的步骤:

  1. 安装油猴插件:在浏览器中安装油猴插件,例如Tampermonkey(适用于Chrome)或Greasemonkey(适用于Firefox)。

  2. 创建油猴脚本:在油猴插件中创建一个新的脚本。

  3. 编写JavaScript代码:将以下JavaScript代码复制到你的油猴脚本中。

// ==UserScript==
// @name         自动点击确定按钮
// @namespace    http://huaiyang.hnjichujiaoyu.com/
// @version      1.0
// @description  自动点击确定按钮关闭弹出框
// @match        http://huaiyang.hnjichujiaoyu.com/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 等待页面加载完成
    window.addEventListener('load', function() {
        // 获取弹出框确定按钮元素
        var btnElement = document.querySelector('.layui-layer-btn0');
        
        // 模拟点击确定按钮
        if (btnElement) {
            btnElement.click();
        }
    });
})();
  1. 保存并安装脚本:保存油猴脚本并确保它已安装到油猴插件中。

现在,当你访问"http://huaiyang.hnjichujiaoyu.com/"时,油猴脚本将自动运行,并尝试点击弹出框的确定按钮,以使弹出框消失。请注意,此解决方案假设你的弹出框只有一个"layui-layer-btn0"类的确定按钮。如果有多个具有相同类名的元素,请相应地修改JavaScript代码。

该回答引用ChatGPT4

  1. 使用document.querySelector获取按钮元素:
js
let btn = document.querySelector('.layui-layer-btn0');

  1. 给按钮绑定点击事件:
js
btn.addEventListener('click', () => {
  // 点击按钮后,弹出框会消失
});

  1. 在油猴脚本中,定期检查页面是否存在该弹出框,如果存在就自动点击按钮:
js
setInterval(() => {
  let btn = document.querySelector('.layui-layer-btn0');
  if (btn) {
    btn.click(); // 自动点击按钮
  }
}, 1000); // 每秒检查一次

所以完整的油猴脚本如下:

js
// ==UserScript== 
// @name         自动关闭弹窗
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  自动查找并点击弹窗的确定按钮
// @author       You
// @match        http://huaiyang.hnjichujiaoyu.com/*
// @grant        none
// ==/UserScript==

setInterval(() => {
  let btn = document.querySelector('.layui-layer-btn0');
  if (btn) {
    btn.click(); 
  }
}, 1000);

安装此油猴脚本后,当页面出现目标弹出框时,该脚本会定期检查并自动点击确定按钮,使弹出框消失。

如果你是为了过验证就是另外的问题了。
自动点击确认的话setInterval检测就行了

   setInterval(function () {
        var path = '/portal/lesson/exam'
        console.log('time for ' + path)
        var div2 = document.querySelector('iframe');
        //判断iframe页面
        if (div2 && div2.src.endsWith(path)) {
            //自动点击
            document.querySelector('.layui-layer-btn0').click();
        }
    }, 1000);

可以使用以下JavaScript代码在油猴中获取弹出框的确定按钮,并自动点击:

// 在页面加载完成后执行以下代码
window.onload = function() {
  // 获取弹出框中的确定按钮
  var btn = document.querySelector('.layui-layer-btn0');
  
  // 如果找到了确定按钮,则自动点击
  if (btn) {
    btn.click();
  }
};


这段代码使用了document.querySelector方法来获取弹出框中的确定按钮,然后使用click()方法来自动点击该按钮。在油猴中,您可以将这段代码放在@run-at标签中,以在页面加载完成后自动执行。同时,为了确保代码能够在正确的页面上执行,您可以将@match标签设置为目标网址,例如:

// ==UserScript完整的油猴脚本代码如下:

// ==UserScript==
// @name 自动点击弹出框确定按钮
// @namespace http://huaiyang.hnjichujiaoyu.com/
// @version 1.0
// @description 在弹出框中自动点击确定按钮以关闭弹出框
// @match http://huaiyang.hnjichujiaoyu.com/*
// @run-at document-end
// ==/UserScript==

window.onload = function() {
  // 获取弹出框中的确定按钮
  var btn = document.querySelector('.layui-layer-btn0');
  
  // 如果找到了确定按钮,则自动点击
  if (btn) {
    btn.click();
  }
};

请注意,以上代码是基于您提供的HTML代码进行的编写,如果目标网站的HTML结构发生变化,可能需要进行相应的调整。此外,自动点击弹出框的确定按钮可能会影响您的操作,因此请谨慎使用。


下面的代码可以实现让当前页面的confirm弹出框不显示,永远是确定的。

window.confirm = function() {return true}

confirm()方法用于显示一个带有指定消息和确认及取消按钮的对话框。

如果访问者点击"确定",此方法返回true,否则返回false