如何使用 xpath 自动点击 link
How to auto click a link with xpath
我正在寻找一种在页面加载时自动点击按钮或 link 的方法。目前 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 坐标来单击,但它也没有用。我知道我做错了什么,因为我几乎没有编码经验。有人能把我引向正确的方向吗?
如果您检查 singleNodeValue
的值,您会注意到它是 null。这是因为你的XPath是错误的。
正确的完整 XPath 是:/html/body/div[2]/div[4]/div[2]/form/fieldset/p[4]/input
但是,这条路径在未来很可能会中断,因为它依赖于 <div>
s 和 <p>
s 位于特定位置。您可以制作更多 "relaxed" 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);
我正在寻找一种在页面加载时自动点击按钮或 link 的方法。目前 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 坐标来单击,但它也没有用。我知道我做错了什么,因为我几乎没有编码经验。有人能把我引向正确的方向吗?
如果您检查 singleNodeValue
的值,您会注意到它是 null。这是因为你的XPath是错误的。
正确的完整 XPath 是:/html/body/div[2]/div[4]/div[2]/form/fieldset/p[4]/input
但是,这条路径在未来很可能会中断,因为它依赖于 <div>
s 和 <p>
s 位于特定位置。您可以制作更多 "relaxed" 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);