如何参考 selenium 编码 vba 以单击基于模态的边缘浏览器中弹出窗口的关闭按钮

How to code vba with reference to selenium for clicking the close button of the pop up in edge browser that is modal based

我想创建一个 excel 宏来自动将数据上传到政府网站,然后在 return 中检索 QR 码 png 以便在数据从他们的网站快速处理后放入工作表结尾。我是这里的新手。

我被困在早期阶段,我无法在弹出叠加层中为关闭按钮或“tutup pengumuman”按钮指定正确的元素。该网站将每 60 秒刷新一次。我尝试了以下但无济于事:

希望有人可以在这里为我的问题提供建议。谢谢!

    Public Sub selenium()
        Dim bot As New WebDriver
        bot.Start "edge", "https://simka-outbreak.moh.gov.my/outbreak/index.php"
        bot.Get "/"
        bot.Window.Maximize
        bot.Wait 100000
        bot.FindElementById("myModal2").Click
        bot.FindElementByClass("close").Click
        bot.FindElementByXPath("//*[@id='myModal2']/div/div/div[1]/button").Click
        bot.FindElementByClass("btn btn-primary").Click
        bot.FindElementByXPath("//*[@id='myModal2']/div/div/div[2]/center/b/button").Click
        bot.FindElementById("username").SendKeys ("username")
        bot.FindElementById("password").SendKeys ("password")
        bot.FindElementById("submitBtn").Click
        bot.Wait 1000000
    End Sub

html如下:

<div id="myModal2" class="modal fade">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">Pengumuman Penting</h4>
            </div>
            <div class="modal-body">
                <p>
                
                <b><font color=blue>PENUTUPAN KHIDMAT BANTUAN PENGGUNA MELALUI WHATSAPP</font></b>
<br><br>
Tuan/Puan Yang Dihormati
<br><br>
Merujuk kepada perkara diatas, <font color=red><b>khidmat bantuan pengguna melalui Whatsapp ditutup buat sementara waktu</b></font>.<br><br>Sila emel ke it.mkak@moh.gov.my atau hubungi 03-6126-1200 (Hari Isnin hingga Jumaat dari jam 9pagi hingga 5petang sahaja) untuk sebarang bantuan.<br><br>Terima kasih diatas kesabaran pihak tuan/puan.<b><br><br>




<br> 


<!--
<b><font color=blue>HEBAHAN KEMASKINI PEMBOLEHUBAH SIMKA OUTBREAK</font></b>
<br><br>
Tuan/Puan Yang Dihormati
<br><br>
Mohon muat turun kemaskini terbaru bertarikh <font color=red><b>18hb Mei 2021</b></font> untuk maklumat Pemboleh Ubah SIMKA Outbreak<b><br><br>

Sila muat turun dokumen berkaitan dengan mengklik link <a href="https://simka-outbreak.moh.gov.my/HebahanKemaskiniPembolehUbahSimka.pdf" target="_blank">DI SINI</a></b>.<br><br>

<br><br>

<br>-->


                </p><center>
                <button type="button" class="btn btn-primary" data-dismiss="modal">Tutup Pengumuman</button>
            </center>
            </div>
        </div>
    </div>
</div> 

Tutup Pengumuman 按钮的 class name 有一个 space。当尝试使用以下行时,它起作用了。

bot.FindElementByXPath("//button[contains(@class,'btn-primary')]").click()

你运行你的代码有什么错误?为什么要等 100000 毫秒这么久?我用 wait for 5000ms 和 bot.FindElementByClass("close").Click 进行了测试,它可以正常工作。

您可以参考下面的代码示例:

Public Sub Selenium()
        Dim bot As New WebDriver
        bot.Start "edge", "https://simka-outbreak.moh.gov.my/outbreak/index.php"
        bot.Get "/"
        bot.Window.Maximize
        bot.Wait 5000
        bot.FindElementByClass("close").Click
        bot.FindElementById("username").SendKeys ("username")
        bot.FindElementById("password").SendKeys ("password")
        bot.FindElementById("submitBtn").Click
        bot.Wait 5000
End Sub