在 Excel VBA 上使用 Selenium Edgedriver 检测 HTML 音频的方式结束

How detect HTML audio ended on using Selenium Edgedriver on Excel VBA

提问人:김수연 提问时间:10/19/2023 更新时间:10/19/2023 访问量:36

问:

http://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio

我打开了这个页面的 Excel VBA Selenium Edgedriver 示例

我想自动关闭 Edge 浏览器自动音频已结束

所以我搜索了 JavaScript...?事件侦听器应用我的VBA代码

但是我创立了JAVA代码,我不知道该怎么做。 请帮我。

my code

sub edGe()
    Dim edGe As New EdgeDriver
    
    With edGe
        .Start
        .Get "http://sousound.com/music/healing/healing_01.mp3"

    ' How i auto close if audio is ended....? 

End Sub

我创立了 HTML5 Audio Elements http://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio

我可以使用“已结束”事件名称..吗?

我发现 edGe.FindElementById() 的东西 但我不知道如何输入html代码...

JavaScript HTML Excel VBA 硒 webdriver

评论

0赞 Community 10/19/2023
请澄清您的具体问题或提供其他详细信息,以准确说明您的需求。正如目前所写的那样,很难确切地说出你在问什么。
0赞 김수연 10/19/2023
对于无法详细表达,我深表歉意。我正在用VBA制作一本词汇书。我什至从一个名为 Wordreference 的网站中提取了一个指向语音文件的链接,但我编写此代码是为了在 Excel 中播放该链接。我最初尝试将 .wav 文件下载到我的 PC,但由于公司的安全程序,这是不可能的,所以我想直接运行互联网并播放它。但是,即使链接成功,也存在一个问题,即 Internet 窗口在完全播放之前关闭。这就是我发布这个问题的原因。

答:

0赞 vbakim 10/19/2023 #1

我会使用 HTML5 audio 元素的 ended 事件。将事件侦听器添加到已结束事件的该音频元素。触发此事件时,执行 JavaScript 以关闭浏览器窗口。

Sub edGe()
    Dim edGe As New EdgeDriver
    Dim audioElement As WebElement
    Dim jsScript As String

    With edGe
        .Start
        .Get "http://sousound.com/music/healing/healing_01.mp3"

        .Wait 5000 'for 5 seconds

        ' Locate the audio element
        Set audioElement = .FindElementByTag("audio")

        ' Check if the audio element was found
        If Not audioElement Is Nothing Then
            ' Add an event listener for the 'ended' event to close the browser
            jsScript = "var audio = arguments[0];" & _
                       "audio.addEventListener('ended', function() {" & _
                       "    window.close();" & _
                       "});"
            
            .ExecuteScript jsScript, audioElement
        End If

        ' Keep the VBA script running, till closing the window
    End With
End Sub

评论

0赞 김수연 10/19/2023
感谢您的回复。我现在下班了,所以等我回去工作后,我会一一学习和应用。谢谢。