AutoHotKey Com 对象获取 select 列表
AutoHotKey Com Object get select list
我正在使用以下代码来 select 网页上的下拉菜单,我认为这会非常简单。不幸的是,每当我尝试更改 select 列表的 selectedIndex 时,我都会收到 "Unknown Name" 错误。
这会导致一条空消息:
test := ie.document.getElementByID("mySelect").selectedIndex.Value
MsgBox %test%
这是 HTML:
<SELECT onchange=onchangeSelectOption(); onfocus="hint('Select option');" id=mySelect name=mySelect>
<OPTION value=option_1>Option 1</OPTION>
</SELECT>
我试过这个来更改 selectedIndex 并手动触发 onchange 事件:
ie.document.getElementByID("mySelect").selectedIndex := 1
ie.document.getElementByID("mySelect").fireEvent("onChange")
我也尝试过通过其他方式获取值,例如:
test := ie.document.all.mySelect.selectedIndex
MsgBox %test%
以及:
ie.document.all.mySelect.Click()
一件可能很重要的事情。您不能右键单击 select 列表并查看源代码,但可以在附近执行此操作并在 DOM 中找到 select 列表。此外,我相信 select 列表的选项是通过 javascript 动态加载的,所以我认为当我尝试访问它时 select 可能不可用。我加入了很长的等待时间以确保所有内容都已加载,但它仍然无法识别 select 列表的名称或 ID。
有什么想法吗?
编辑:HTML 在框架内。
对于以后可能正在寻找答案的任何人,我意识到该页面正在使用框架,并且从 this post 了解到您必须首先定位框架,然后才能操作文档框内。我得到一个空的 MsgBox,因为我试图在一个不存在的文档中找到 ID 为 mySelect 的元素。
Frame := ComObj(9,ComObjQuery(ie.document.getElementById("_Menu_target").contentWindow,"{332C4427-26CB-11D0-B483-00C04FD90119}","{332C4427-26CB-11D0-B483-00C04FD90119}"),1)
msgbox % Frame.document.documentElement.innertext
我正在使用以下代码来 select 网页上的下拉菜单,我认为这会非常简单。不幸的是,每当我尝试更改 select 列表的 selectedIndex 时,我都会收到 "Unknown Name" 错误。
这会导致一条空消息:
test := ie.document.getElementByID("mySelect").selectedIndex.Value
MsgBox %test%
这是 HTML:
<SELECT onchange=onchangeSelectOption(); onfocus="hint('Select option');" id=mySelect name=mySelect>
<OPTION value=option_1>Option 1</OPTION>
</SELECT>
我试过这个来更改 selectedIndex 并手动触发 onchange 事件:
ie.document.getElementByID("mySelect").selectedIndex := 1
ie.document.getElementByID("mySelect").fireEvent("onChange")
我也尝试过通过其他方式获取值,例如:
test := ie.document.all.mySelect.selectedIndex
MsgBox %test%
以及:
ie.document.all.mySelect.Click()
一件可能很重要的事情。您不能右键单击 select 列表并查看源代码,但可以在附近执行此操作并在 DOM 中找到 select 列表。此外,我相信 select 列表的选项是通过 javascript 动态加载的,所以我认为当我尝试访问它时 select 可能不可用。我加入了很长的等待时间以确保所有内容都已加载,但它仍然无法识别 select 列表的名称或 ID。
有什么想法吗?
编辑:HTML 在框架内。
对于以后可能正在寻找答案的任何人,我意识到该页面正在使用框架,并且从 this post 了解到您必须首先定位框架,然后才能操作文档框内。我得到一个空的 MsgBox,因为我试图在一个不存在的文档中找到 ID 为 mySelect 的元素。
Frame := ComObj(9,ComObjQuery(ie.document.getElementById("_Menu_target").contentWindow,"{332C4427-26CB-11D0-B483-00C04FD90119}","{332C4427-26CB-11D0-B483-00C04FD90119}"),1)
msgbox % Frame.document.documentElement.innertext