等待直到硒excel vba中出现特定值

时间:2018-12-21 22:04:09

标签: excel vba excel-vba selenium-webdriver web-scraping

我的HTML元素

<span id="ContentPlaceHolder1_Label2" designtimedragdrop="1319" style="display:inline-block;color:Firebrick;font-size:Medium;font-weight:bold;width:510px;"></span>

,然后在页面上单击“保存”按钮后,该部分即会更改为

<span id="ContentPlaceHolder1_Label2" designtimedragdrop="1319" style="display:inline-block;color:Firebrick;font-size:Medium;font-weight:bold;width:510px;">تم حفظ التعديل بنجاح</span>

您会注意到此值تم حفظ التعديل بنجاح .. 之后,我应该单击另一个按钮,但是当互联网连接速度慢时会出现问题。保存前我点击了另一个按钮 我该如何等待值تم حفظ التعديل بنجاح的出现,然后在该文本出现之后>>移至另一个按钮

感谢高级帮助

2 个答案:

答案 0 :(得分:3)

我尝试了此解决方案,对我来说效果很好 这是在Ziggus的建议的帮助下

        Do Until .FindElementById("ContentPlaceHolder1_Label2").Text = "تم حفظ التعديل بنجاح"
        Application.Wait Now() + TimeValue("00:00:01")
    Loop

答案 1 :(得分:1)

当您冒无限循环的风险时,我会重新编写该代码。使它成为定时循环并添加DoEvents

Dim result As String, testElement As Object, t As Date
Const MAX_WAIT_SEC As Long = 10 '<==adjust time here
t = Timer
Do
    DoEvents
    On Error Resume Next
    Set testElement = .FindElementById("ContentPlaceHolder1_Label2")
    result = testElement.Text
    If Timer - t > MAX_WAIT_SEC Then Exit Do
    On Error GoTo 0
Loop While result <> "تم حفظ التعديل بنجاح"