首页 > 解决方案 > 使用 waitForKeyElements 依次单击两个按钮,一旦页面正确加载

问题描述

我目前正在尝试找出一种方法来自动单击我认为是 AJAX 驱动网站的页面上的按钮。我正在通过 Tampermonkey (Javascript Userscript) 执行此操作。

现在,以下脚本在控制台中运行,并通过 HTML/CSS 元素单击页面上的目标按钮:

document.querySelector('li[data-v-29761082].list-item').click();

然后我使用以下脚本(也可以在页面上的控制台中使用)单击下一个按钮(在按下第一个按钮后出现):

document.querySelector('button.el-button.button.el-button--primary.el-button--xl').click();

所以这两行代码都在控制台中工作,但我需要将它们集成到一个脚本中,该脚本通过 Tampermonkey 在页面中自动运行。不幸的是,当在 Tampermonkey 中使用时,什么也没有发生,并且按钮不点击。我认为这是因为它是一个基于 AJAX 的站点。

我相信 waitForKeyElements 函数将有助于在页面正确加载后执行代码。

我希望这两个单独的代码行串联使用(一个接一个),但是两者都必须等待并要求它们的元素首先加载并在页面上,然后再执行并继续下一个选择(第二个一行代码)。

我之前使用过 waitForKeyElements 函数,但我无法为这个特定脚本找到正确的方法和语法:

const findAndClickParent = text => [...document.querySelectorAll('label > span')].forEach(e => e.textContent === "Yes" ? e.parentElement.click(): null);

waitForKeyElements (
  "label",
  () => {
    findAndClickParent("Yes");
  }
);

所以需要找一个类似的waitForKeyElements方法在Tampermonkey里面和页面上正确执行上面两行代码。现在,我在获取正确的语法并能够一个接一个地正确执行代码时遇到了一些麻烦。任何和所有的建议将不胜感激。

标签: javascriptjqueryclickuserscriptstampermonkey

解决方案


推荐阅读