gpt4 book ai didi

javascript - AHK 网页元素按钮按下

转载 作者:行者123 更新时间:2023-11-30 14:41:56 26 4
gpt4 key购买 nike

我一直在尝试了解如何让 AHK 按下按钮而不是通过图像或像素搜索,或者通过坐标,而是通过网络元素 ID,这样它就可以在不同的 PC 上正常工作,并且不太容易失败。

我已经确定了按钮的网络代码:

<div class"rightButtonSection">
<button name="PierPropertiesContainer_componentnext_0" title="Next Page" class="button buttonLink" onclick"setKeys(event);__xee72onclick(this);" type="button">Next</button>
</div>

我在这里有点不知所措,而且我从来没有在网上找到对 AHK 有很大帮助的指南。

我认为这将与 document.getElementById("button") 有关,这是我目前所了解的。

如果您知道我接下来可以尝试什么或我需要什么额外信息,请告诉我!

干杯

编辑:

根据感谢提供的链接和建议,我将其放在一起:

!q::

IEGet(name="") {
IfEqual, Name,, WinGetTitle, Name, ahk_class IEFrame
Name := (Name="New Tab - Windows Internet Explorer")? "about:Tabs":RegExReplace(Name, " - (Windows|Microsoft)? ?Internet Explorer$")
for wb in ComObjCreate("Shell.Application").Windows()
if wb.LocationName=Name and InStr(wb.FullName, "iexplore.exe")
return wb
}

wb := IEGet()
wb.Visible := true
wb.document.getElementById("button").click()

return

遗憾的是,这仍然没有任何作用,但我觉得它越来越接近了。

编辑2:

IEGET(name="") 位似乎在工作,它将循环遍历所有打开的选项卡,它看起来像。但是一旦它点击“返回,wb”,它就卡在那里,所以错误一定是我识别标签名称......也许......

001: Return (3.37)
004: if name =
004: WinGetTitle,name,ahk_class IEFrame
005: name := (Name="New Tab - Windows Internet Explorer")? "about:Tabs":RegExReplace(Name, " - (Windows|Microsoft)? ?Internet Explorer$")
006: For wb, in ComObjCreate("Shell.Application").Windows() (0.09)
007: if wb.LocationName=Name && InStr(wb.FullName, "iexplore.exe")
008: Return,wb (4.82)

Press [F5] to refresh.

最佳答案

看看@Michael_Curry 的评论。您需要创建一个包含 Web 浏览器对象 (Internet Explorer) 的 AHK 对象。这是一个用于创建一个的简单脚本:

wb := ComObjCreate("InternetExplorer.Application")  ;// Create an IE object
wb.Visible := true ;// Make the IE object visible
wb.Navigate("www.AutoHotkey.com") ;// Navigate to a webpage

然后,您的代码将按如下方式工作:

wb.document.getElementById("button")

根据评论编辑:

如果您需要找到一个已打开的 IE 选项卡用作您的 wb 对象,则将第一行替换为:

IEGet("The name of the IE tab you want to use")

并将以下 IEGet 函数(来自链接)添加到您的脚本中:

IEGet(name="") {
IfEqual, Name,, WinGetTitle, Name, ahk_class IEFrame ;// Get active window if no parameter
Name := (Name="New Tab - Windows Internet Explorer")? "about:Tabs":RegExReplace(Name, " - (Windows|Microsoft)? ?Internet Explorer$")
for wb in ComObjCreate("Shell.Application").Windows()
if wb.LocationName=Name and InStr(wb.FullName, "iexplore.exe")
return wb
}

根据 OP 的合理尝试进行编辑

你正在到达那里。您需要将 IE 选项卡名称放在引号中,并且可能有助于使用选择器(但这是另一个问题)。尝试:

wb := IEGet("IE tab name") ;// here put in the actual IE tab name in quotes
wb.Visible := true
wb.document.getElementById("PierPropertiesContainer_componentnext_0").click() ;// is button the ID? try the name or a different selector

嗯,

关于javascript - AHK 网页元素按钮按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49516638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com