【发布时间】:2022-12-01 00:41:05
【问题描述】:
我在尝试让这段代码在 servicenow 中工作时遇到了一些问题,因为我不太了解 Javascript。 基本上,我有一个使用 chrome.ahk 在 AHK 中制作的 GUI。 我已正确加载 chrome,因此 chrome.ahk 可以执行它的操作。我的测试表明它是使用正确的端口打开的,如果我在我想在其中工作的页面上执行基于 js 的警报,它就可以正常工作。
我的问题是我似乎无法让我的代码更改我希望它更改的下拉菜单。
这是我正在尝试使用的元素:
<select aria-required="true" aria-labelledby="label.new_call.call_type" ng-non-bindable="true" name="new_call.call_type" id="new_call.call_type" onchange="onChange('new_call.call_type', arguments.length === 2 ? arguments[1] : false);" style="; " class="form-control " choice="1">
<option value="" selected="SELECTED">-- None --</option>
<option value="hang_up">Hang Up</option>
<option value="incident">Incident</option>
<option value="password_unlock">Password/ Unlock</option>`
<option value="Request">Request</option>
<option value="status_call">Status Call</option>
<option value="Store Phone Number">Store Phone Number</option>
<option value="Transfer">Transfer</option>
<option value="Vendor Status Call Back">Vendor Tech Call Back</option>
<option value="wrong_number">Wrong Number</option>`
</select>
我已经尝试了各种不同的变体来完成这项工作,但我只是不知道发生了什么,我所做的一切都不起作用。
我搜索了谷歌,尝试了我能找到的每一种方法,但没有任何效果。
这是我使用的最后一件事,它没有抛出任何错误:
page.evaluate("document.getElementsByName('Call Type').selectedIndex= '2' ")
我也尝试过 getElementsByName('new_call.call_type'),也通过 ID 尝试过。我试过按值、ID、索引、它们的不同变体进行选择,具体取决于我在谷歌中找到的内容,但没有任何效果。
我的问题是,如果我想选择值“事件”,应该怎么办?它可以与值或索引一起使用,只要它有效,任何一种方式都无关紧要。
我尝试了很多不同的变体
page.evaluate("document.getElementsByName('Call Type').selectedIndex= '2' ")
GetElement 是 ByName 或 ByID...名称是 Call_type、Call Type、new_call.call_type
我尝试了 .selectedIndex、.selectedValue 的许多不同变体以及 .options 的不同变体
我试着浏览这篇文章:Dropdown selection on AHK using Chrome.ahk
但我也无法让它发挥作用。
此外,我无法控制用于生成表单本身的代码,因此无法更改 select 元素中的任何内容,我必须使用其中的内容。
【问题讨论】:
标签: javascript autohotkey