2011-04-29 47 views
4

所以,我刚开始今天使用PowerShell玩,我一直在寻找,但我无法找到答案。我不确定我是否在正确的地方寻找。操纵JavaScript的下拉使用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事件?默认情况下,“服务”下拉菜单,所以我不能匹配我所需要的文本和我需要选择的值。有没有另外一种方法可以使用现有的值 - >文本映射?

+0

你是什么意思与“服务下拉列表”? – 2011-04-29 19:01:26

回答

3

我就遇到了这个在我的最后一份工作,并没有找到一个很好的解决方案。问题是,当你改变.value时,你只是在DOM上做这件事,所以你发现JavaScript没有注意到这个改变。

极其哈克的方式,我发现得到这个工作是送钥匙的元素。我没有在我面前的代码,所以我不能告诉你确切的语法。这是有效的,因为JavaScript认为这与输入来自键盘缓冲区相同,并会相应地更新。

这不会是,如果没有那么糟糕以下缺点:在IE页面必须是可见和活动的发送键的工作 - 你不能只是发送键COM对象。您可以使COM对象可见,然后选择该过程,然后可以将密钥发送到该窗口。这显然非常脆弱,并且使得用户在脚本运行时不能执行多任务。我希望别人有更优雅的方法。 :)

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