Javascript 如何使用xpath自动单击链接

Javascript 如何使用xpath自动单击链接,javascript,jquery,button,xpath,click,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(); 我正在尝试自动点击这个按钮。我还尝试使用按钮的X和Y坐标单击,但也不起作用。我知道我做错了什

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

document.evaluate('/html/body/div/div[4]/div[2]/form/p/input', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.click();
我正在尝试自动点击这个按钮。我还尝试使用按钮的X和Y坐标单击,但也不起作用。我知道我做错了什么,因为我几乎没有编码经验。有人能给我指出正确的方向吗


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

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

但是,这条路径很可能在将来中断,因为它依赖于位于特定位置的
s和
s。您可以创建一个更“宽松”的XPath,它仍然可以找到正确的元素。事实上,您可以在GoogleChrome中轻松做到这一点,方法是右键单击按钮,单击Inspect,然后右键单击DOM元素并选择Copy 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);

可能的副本您测试过吗?因为不知怎么的,它对我不起作用。(完全没有自动单击)它可以工作。我添加了一个GIF,显示我在Chrome控制台中编写它,它单击按钮(然后抱怨我没有选择文件)。您是如何执行代码行的?我正在使用firefox的代码注入器扩展。你能告诉我一些更好的选择吗?它也可以在Firefox中使用代码注入器。添加了它的屏幕截图。你一定是在做什么,而不是简单地执行那行代码?我现在添加了一些代码,等待按钮出现,然后检查视频是否已经转换,如果没有,然后单击按钮。