【问题标题】:Manipulating javascript dropdown with powershell使用 powershell 操作 javascript 下拉菜单
【发布时间】:2011-08-15 13:37:47
【问题描述】:

所以,我今天才开始玩Powershell,一直在寻找,但找不到答案。我不确定我是否找对地方了。

我需要使用 powershell 在某些下拉列表中选择正确的组合。一个下拉列表是公司列表,另一个是服务列表。服务列表的填充取决于公司选择。

使用 IE ComObject:

$company = $doc.getElementById("id_companyselection")
$service = $doc.getElementById("id_companyservice")

foreach ($Item in $company) {
  if ($Item.text -eq "name_of_company") {
    $shippingMethod.value = $Item.value
  }
}

有没有办法强制 Javascript 注册 onchange 事件?默认情况下,“服务”下拉列表,因此我无法将我拥有的文本与我需要选择的值匹配。是否有另一种方法可以使用现有值 -> 文本映射?

【问题讨论】:

  • “服务下拉菜单”是什么意思?

标签: javascript internet-explorer com powershell


【解决方案1】:

我在上一份工作中遇到了这个问题,但从未找到一个很好的解决方案。问题是,当您更改 .value 时,您只是在 DOM 上执行此操作,因此您发现 JavaScript 不会注意到更改。

我发现让它工作的一种非常老套的方法是向元素发送密钥。我面前没有代码,所以我不能告诉你确切的语法。这是有效的,因为 JavaScript 认为这与输入来自键盘缓冲区一样,并且会相应地更新。

如果不是因为以下缺点,这还不算太糟糕:IE 页面必须可见且处于活动状态才能发送键工作 - 您不能只将键发送到 COM 对象。您使 COM 对象可见,然后选择进程,然后您可以将密钥发送到该窗口。这显然非常脆弱,并且使得用户在脚本运行时无法执行多任务。我希望其他人有更优雅的方法。 :)

对于下拉而不是文本字段的示例,您可能必须选择该字段,然后向下发送数组以移动到下拉列表的不同值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多