代码之家  ›  专栏  ›  技术社区  ›  Mike

如何选择下拉列表值,然后使用PowerShell和IE 6.0进行回发

  •  2
  • Mike  · 技术社区  · 17 年前

    这将设置该值,但不会导致回发:

    function SelectValue($ddl, $val) {
        $ddl.options | % {$i = 0}{ if ($_.value -eq $val) { 
                $ddl.selectedIndex = $i; }; $i += 1; }
    
    }
    

    另外,一旦我得到回邮工作,我是否需要添加一个延迟,例如:

        while($ie.ReadyState -ne 4) {
            start-sleep -m 100
        } 
    

    HTML如下所示:

    <select name="ddl" onchange="__doPostBack('ddl','')" language="javascript" id="ddl" class="required" style="width:100%;">
    <option value="-- Please Select --">-- Please Select --</option>
    <option value="Some Value">Some Value</option>
    </select>
    

    编辑: 为什么我要在PowerShell中执行此操作?也许瓦廷会简单得多(尽管我从来没有用过瓦廷)。但我只是想知道如何使用PowerShell实现快速、临时、有限的网站自动化。我经常旅行,使用不同的机器,PowerShell是我能依赖的少数常量之一。

    解决方案: 结果证明这很容易,而且非常有用,因为现在我可以直接编写一个页面脚本,进行一些选择,然后单击一个提交按钮,就像魔术一样,这很容易。我认为我和PowerShell的爱/恨关系正在回归到爱。总之,关键是使用表单提交,而不是使用onchange事件,这是众所周知的,在用javascript调用时不会触发。以下是操作方法:

    $frm = $ie.document.getElementById("frm");
    $frm.submit();
    

    我发现我不必等待回邮。为了完整起见,单击按钮就像在javascript中一样:

    $btnReport = $ie.document.getElementById("btnReport")
    $btnReport.click() 
    
    2 回复  |  直到 17 年前
        1
  •  1
  •   JasonMArcher TWE    17 年前

    我为什么要在 Powershell?也许瓦廷会是一个 简单多了(尽管我从来没有用过 沃廷)但我只是想知道 了解如何使用PowerShell进行快速操作, 临时的、有限的网站自动化。

    是的,您应该使用watin,但您想使用PowerShell吗?所以使用PowerShell中的watin!

    PowerShell是一个通用的shell/脚本/自动化工具。为了完成任务,PowerShell使用特殊的工具(com、wmi、net等)。

    这里有一些事情要开始。

    http://poshcode.org/1108

        2
  •  0
  •   Tim2010    17 年前

    您可以使用imacros,它公开COM对象,因此可以直接从PowerShell使用: http://wiki.imacros.net/PowerShell

    唯一的缺点:它不是免费的。为了方便快捷 自由的 解决方案尝试iMacros Firefox插件。也可以通过命令行使用: http://wiki.imacros.net/iMacros_for_Firefox#Command_Line_Support