【问题标题】:Vbscript detect button in an new IE window新IE窗口中的Vbscript检测按钮
【发布时间】:2015-06-09 22:26:53
【问题描述】:

我有一个打开网页,然后单击按钮的 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。

【问题讨论】:

  • 所以没有人可以帮忙?
  • 在所有打开的 MSIE 窗口中搜索。您可以使用Shell.Application 属性找到它们并获取它们的句柄;这是my answer to another question 中的一个示例。 HTH
  • 嗯,据我所知,您的脚本会检测 IE 是否已打开。就我而言,此脚本打开一个网站并单击该网站上的一个按钮。单击该按钮时,它将打开一个新的 IE 窗口,其中包含此 id="pagesHeaderLikeButton" 的按钮,我希望我的脚本在该新 IE 窗口上按下该按钮。我不能让脚本直接打开那个网站并按下按钮,因为链接会随机生成。
  • 是的,您的脚本将打开一个新的 IE 窗口...之后是在 所有打开的 MSIE 窗口中搜索的正确时间"shell.application"。当然,您的标准不同,但 方法 是相同的,不是吗?
  • 嗯,我尝试了一些方法,但没有成功...我无法通过 ID 获取按钮。您的脚本很好,但您的脚本在新打开的窗口中检测到 url,但我无法让脚本检测该按钮。你能做一个更简单的版本吗?按钮是:id="pagesHeaderLikeButton"

标签: vbscript


【解决方案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

上面的脚本会找到任何打开的 IE,其 URL 为:facebook.com/***,并将 IE2 设置为打开的 IE。

所以按下按钮:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2020-04-02
    • 2020-12-13
    相关资源
    最近更新 更多