如何参考 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">×</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
我想创建一个 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">×</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