javascript - 如何使用xpath自动点击链接

标签 javascript jquery button xpath click

我正在寻找一种在页面加载时自动单击按钮或链接的方法。目前 Xpath 方法对我来说似乎是一个不错的选择。我尝试过的是,

document.evaluate('/html/body/div/div[4]/div[2]/form/p/input', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();

我正在尝试自动单击 ezgif site 上的此按钮。我也尝试过使用按钮的 X 和 Y 坐标进行单击,但也不起作用。我知道我做错了什么,因为我几乎没有编码经验。有人能让我走上正确的方向吗?

enter image description here enter image description here

最佳答案

如果您检查 singleNodeValue 的值,您会注意到它是null。这是因为您的 XPath 错误。

正确的完整 XPath 是:/html/body/div[2]/div[4]/div[2]/form/fieldset/p[4]/input

但是,这条路将来很可能会中断,因为它依赖于 <div><p> s 位于特定位置。您可以创建一个更“宽松”的 XPath,它仍然可以找到正确的元素。事实上,您可以在 Google Chrome 中轻松执行此操作,方法是右键单击该按钮,单击“检查”,然后右键单击 DOM 元素并选择“复制 Xpath”。

生成的代码将是:

document.evaluate('//*[@id="tool-submit-button"]/input', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();

如果您想在页面加载时使用它,您应该首先检查视频是否已经转换。您可能还需要等待按钮加载:

var checkTimer = setInterval(function() {
    var button = document.evaluate('//*[@id="tool-submit-button"]/input', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    if (button) {
        clearInterval(checkTimer);

        // Only convert if the gif hasn't already been converted
        if (!document.getElementsByTagName("video")[0])
            button.click();
    }
}, 50);

关于javascript - 如何使用xpath自动点击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53993882/

相关文章:

javascript - 如何使用 Electron 显示打开的文件 native 对话框?

javascript - 如何在上传前显示文件名?

ios - 为什么我的按钮不让我的选择器 View 出现?

javascript - 什么决定了 JavaScript ES6 箭头函数何时结束?

javascript - datetimepicker Jquery 不在 asp 文本框上工作,但在 html 控件上工作

javascript - php-ajax 调用 json 数据并将该数据传递给 jguage js 让小部件显示该值

java - 使用透明按钮更改单击颜色的按钮

javascript - 如何进行此输入,以便在向其中添加超过 1 个文本时,它会在 p2 中添加更多文本

javascript - 无法在更改选择选项时显示文本

javascript - 显示来自 javascript 控制台的消息