【发布时间】:2016-07-28 11:25:54
【问题描述】:
我的 html 页面上有一个按钮,窗口标题为“Page”:
<button onclick="alert('This button has been clicked')">Submit</button>
并使用 AutoHotKey,我试图将焦点设置在他身上,然后发送鼠标点击。
这是我写的 AHK 代码:
^p::
ControlFocus, Submit, Page
MouseClick left
return
按 Ctrl+P 键时,它应该完成他的工作。不幸的是,它不起作用。我已经阅读了包含一些示例的文档,但我无法让它工作......
【问题讨论】:
-
呈现页面中的 HTML 元素远没有在现代浏览器中被表示为自己的窗口控件。也就是说,您的浏览器不会为每个元素都公开一个控件;实际上,它只会为整个渲染页面公开一个控件,甚至只为整个浏览器窗口公开一个控件。如果您使用的是 IE,请尝试COM object automation。在 Chrome 或 Firefox 中,我建议写一个userscript。
-
除了使用点击坐标或者Tab键,有没有其他方法可以让按钮获得焦点?
-
@EddNewGate 是的,只要您使用 IE 并按照@MCL 所说的有关 COM 对象自动化的方法进行操作,这很容易。它最终会变成
wb.Document.getElementByID("ElementName").click()(如果您知道元素名称)或wb.document.getElementsByTagName("button")[1].click()(如果它只能通过其标记类型和索引访问)。另见autohotkey.com/board/topic/… -
抱歉,您确实想点击,对吧?如果您只想专注于某个控件,请将
.click()更改为.focus()。或者,如果您需要检查控件的文本(例如当按钮随机放置在左侧或右侧时),您可以查看.innerText或.innerHTML但这在两个教程 @MCL 和我指示你去。 -
@PGilm 我不想求助于 IE。这些天正在搜索是否可以使其工作,就像它在其他浏览器上的 IE 中如何工作一样,但后来我发现不可能或不太容易......我知道还有其他方法可以聚焦按钮然后发送一个点击,它适用于所有浏览器,但不是那么出色(比如将鼠标光标设置到屏幕上与按钮位置匹配的特定坐标)。我想我会遵循提供的 MCL 解决方案。我相信如果我可以编写一个脚本来为网页上的按钮分配热键,我就可以在 AHK 中调用它。我会看到:)
标签: autohotkey