2015-06-01 25 views
2

我有一個打開網頁的VBScript,然後點擊一個按鈕。該按鈕在新窗口中打開一個新的彈出式網頁(注意:窗口不是選項卡)。在新的IE窗口中的Vbscript檢測按鈕

我想在我的腳本按下按鈕並打開一個新窗口後,檢測並在該新窗口中單擊名爲id="pagesHeaderLikeButton"的按鈕,然後關閉該窗口。

我至今腳本:

Set IE = createobject("internetexplorer.application") 
strURL = "website" 

Do While True 
IE.navigate strURL 
IE.Visible = true 
Do While (IE.Busy Or IE.READYSTATE <> 4)  
    WScript.Sleep 1000 
Loop 
    Set Popupbutton = IE.Document.GetElementsByClassName("single_like_button btn3-wrap") 
    for each button in Popupbutton 
     button.click 
     WScript.Sleep 5000 
    exit for 
    objWindow.Quit 
    WScript.Sleep 5000 
next 
Loop 

還注意到。我想這樣做,因爲彈出窗口總是會有一個新的URL。

+0

因此,有沒有人誰可以幫助? –

+0

搜索所有打開的MSIE窗口。你可以找到這些並使用'Shell.Application'屬性獲取它們的句柄;這是[我對另一個問題的回答]中的示例(http://stackoverflow.com/a/22911604/3439404)。 HTH – JosefZ

+0

嗯,據我所知,你的腳本檢測IE是否打開。就我而言,這個腳本打開一個網站並點擊該網站上的一個按鈕。該按鈕被點擊時,它會打開一個新的IE窗口,這個按鈕有這個'id =「pagesHeaderLikeButton」'這個按鈕,我希望我的腳本在那個新的IE窗口上按下那個按鈕。我不能讓腳本直接打開該網站並按下按鈕,因爲該鏈接將隨機生成。 –

回答

0
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 

以上腳本將找到任何與URL打開IE:facebook.com/***,並將爲IE2到是打開IE瀏覽器。

所以按下按鈕:

Set Butlike = IE2.Document.getElementsById("pagesHeaderLikeButton") 
    For Each btn In Butlike 
    button.click 
Next