用 PS 操作 IE

用 PS 操作 IE


一、抑制警告窗口


    $win.execScript("window.alert=function(){}", "javascript")


二、调用 execScript 时出错


使用“2”个参数调用“execScript”时发生异常:“由于出现错误 80020101 而导致此项操作无法完成。”


获得焦点,好像更有利于窗口的打开。


$ie.Document.parentWindow.focus()


三、弹出窗口,且关闭原窗口,使原来的操作句柄失效,必需要找到新的弹出窗口,才能进行下一步的操作。


function returnWindow($s){
    (New-Object -ComObject Shell.Application).Windows() `
        | Where { $_.FullName.toLower().EndsWith("iexplore.exe") } `
        | where { $_.LocationURL -eq $s } 
# $s 为 "弹出窗口的新地址"
    }


四、等待 IE 加载完成


function waitForLoad ($ie) {
    while ( $ie.Busy ){ Start-Sleep -Milliseconds 100}
}


五、PS 2.0 对 mshtml 的封装不完善。对于没有 ID 或没有唯一 name 的元素无法进行操作。升级到 PS 3.0 以后,就没有这个问题了。


$buttons.length 返回空,没有 $buttons.item 属性。


    $doc = $ie.Document


    $buttons = $doc.getElementsByTagName( "input")


    if ($buttons.length -gt 0 ){
        $buttons.item(1).click()
        }


六、在 PS 控制台中运行正常,但是,不能在任务计划中运行。


    $ie.Document.parentWindow.focus()

用 PS 操作 IE

上一篇:IOS ShareSDK实现分享——微信分享 本地视频分享


下一篇:Linux.Shell编程笔记-流编辑Sed