如果您检查singleNodeValue 的值,您会发现它是null。这是因为您的 XPath 错误。
正确的完整 XPath 是:/html/body/div[2]/div[4]/div[2]/form/fieldset/p[4]/input
但是,这条路径在未来很可能会中断,因为它依赖于<div>s 和<p>s 定位到特定位置。您可以制作一个更“宽松”的 XPath,它仍然可以找到正确的元素。事实上,您可以在 Google Chrome 中轻松做到这一点,只需右键单击该按钮,单击 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);