Подождите, пока в селене Excel VBA появится конкретное значение - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть элемент с этим 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 голосов
/ 22 декабря 2018

Я бы переписал это, так как вы рискуете бесконечным циклом.Сделайте это синхронизированным циклом и добавьте 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 <> "تم حفظ التعديل بنجاح"
0 голосов
/ 22 декабря 2018

Я попробовал это решение, и оно хорошо для меня. Это было с помощью предложения Зиггуса

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