【问题标题】:AHK Form automation with Chrome.ahk and JS使用 Chrome.ahk 和 JS 的 AHK 表单自动化
【发布时间】: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


    【解决方案1】:

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

    但是,顺便说一句,dots 或 "." 具有特殊含义,需要进行转义:

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

    【讨论】:

      猜你喜欢
      • 2020-10-16
      • 2016-05-03
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-25
      相关资源
      最近更新 更多