AHK表单自动化与Chrome.ahk和JS



我有一些问题,试图让这段代码在servicenow工作,因为我真的不知道Javascript那么好。基本上,我有一个GUI我已经在AHK,使用铬。AHK。我有铬加载正确,所以铬。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' ")

的getelelement是ByName或ByID…名称为Call_type、Call Type、new_call.call_type

我已经尝试了许多不同的变化。selectedindex,。selectedvalue和不同的变化。options

我试着通过这篇文章:下拉选择AHK使用Chrome.ahk

但是我也不能让它工作。

此外,我无法控制用于生成表单本身的代码,因此更改select元素中的任何内容都是不可能的,我必须使用那里的内容。

可以获取父元素的innerHTML,然后使用普通的文本操作(甚至REGEX也可以工作)来提取或更改所需的值,然后将更改后的父元素与编辑后的子元素一起发布。

但是,顺便说一下,dots或".";有特殊含义,需要转义:

page.evaluate("document.getElementsByID('new_call.call_type').selectedIndex= '2')

最新更新