VBScript检测Facebook IE窗口,按Like并关闭窗口

时间:2015-06-08 19:46:35

标签: facebook internet-explorer vbscript

我尝试制作一个脚本来检测在Facebook上打开的IE窗口并按下Like按钮。 让我们说我已经打开了10个IE浏览器。其中只有一个在Facebook的页面上。 我希望我的脚本检测到IE窗口,单击此按钮:

IE.Document.getElementById("pagesHeaderLikeButton")

(上面的按钮是Like按钮)

并关闭IE窗口。

我试图通过以下方式获取IE窗口:

For Each wnd In CreateObject("Shell.Application").Windows
        If InStr(1, wnd.FullName, "iexplore.exe", vbTextCompare) > 0 Then
           Set IE = wnd
           Exit For
        End If
Next

但是这只会将我的VBscript设置为第一个打开的IE浏览器,它将无法找到Facebook窗口。

我试过这个:

Dim objInstances, item
Set objInstances = CreateObject("Shell.Application").windows
For Each item In objInstances
    If Item.Name Like "*Internet*" And Item.document.URL Like "*facebook.com*" Then
        IE.Document.getElementById("pagesHeaderLikeButton").Click
    End If
Next

但我得到" Sub或功能未定义"

3 个答案:

答案 0 :(得分:1)

以下代码将搜索其网址中包含" facebook.com" 的开放式IE窗口,并将其保存在一个集合中:

Dim getIE  As New Collection     
For Each Item In CreateObject("Shell.Application").Windows
            If Item.Name Like "*Internet*" And Item.document.URL Like "*facebook.com*" Then
                getIE.Add Item
            End If
Next

然后你可以遍历集合并使用IE项目做你想做的事情:

For Each itemIE In getIE
    itemIE.Document.getElementById("pagesHeaderLikeButton").Click ' For example
Next itemIE

希望这可以做你想要的! ;)

答案 1 :(得分:1)

下一段代码片段可以提供帮助:

Set shApp = CreateObject( "shell.application")
With shApp
  For Each wnd In .Windows
      If InStr(1, wnd.FullName, "iexplore.exe", vbTextCompare) > 0 Then
        If InStr(1, wnd.document.URL, "facebook.com", vbTextCompare) > 0 Then
          Wscript.Echo "THIS:"
        End If
        Wscript.Echo Left( wnd.document.URL, 70)
      End If
  Next
End With

输出示例(包含更多facebook.com个匹配项):

==>cscript D:\VB_scripts\SO\30717779a.vbs
http://www.msn.com/?ocid=iehp
THIS:
https://www.facebook.com/login.php?api_key=127760087237610&skip_api_lo
THIS:
https://www.facebook.com/literarnifestival1
THIS:
https://cs-cz.facebook.com/mgvsetin
http://www.bing.com/search?q=Xmaster+Official&qs=n&form=QBRE&pq=xmaste
http://www.bing.com/search?q=%22Xmaster+Official%22&qs=n&form=QBRE&pq=

==>    

答案 2 :(得分:1)

For Each wnd In CreateObject("Shell.Application").Windows
        If InStr(wnd.Name,"Internet") Then
            if InStr(wnd.Document.URL,"facebook.com") Then
                Set IE2 = wnd
                Exit For
            End If
        End If
Next

所以按下按钮将是这样的:

Set Butlike = IE2.Document.getElementsByTagName("button")
    For Each btn In Butlike
    If btn.type = "submit" Then btn.Click()
Next