循环直到错误停止或 15 分钟过去

问题描述 投票:0回答:1

我正在尝试创建一个循环,因此它会尝试单击该元素,直到找到它。但是,它不遵守 15 秒的尝试限制,如果超出该限制,则会发出有关错误的消息警告..我必须在代码中更改什么,因为它似乎处于永恒循环中..

我的代码:

tlimit = 60
tfirst = Timer
On Error Resume Next
Do While Timer - tfirst < tlimit Or Err.Description <> ""
drive.FindElementByXPath("//*[contains(@class, 'p-button-label') and text() = 'Erase']").Click
If Err.Description = "" Then
On Error GoTo 0
Exit Do
ElseIf Timer - tfirst > tlimit Then
MsgBox " error" & Err.Description
Else
Err.Clear
Application.Wait Now + TimeValue("00:00:01")
Loop

我使用 err.descripton 因为如果我把 err.number 放在 Selenium 中找不到它的错误是 0,并且最终没有 do 的条件。

如果有人可以评论并帮助我,我将不胜感激..非常感谢

excel vba selenium-webdriver
1个回答
0
投票

当我尝试你的代码时,它正在工作。唯一的问题是你的计时器设置为 60 秒,你可以将其更改为 15 秒。

tlimit = 15
tfirst = Timer
On Error Resume Next
Do While Timer - tfirst < tlimit Or Err.Description <> ""
    drive.FindElementByXPath("//*[contains(@class, 'p-button-label') and text() = 'Erase']").Click
    If Err.Description = "" Then
        On Error GoTo 0
        Exit Do
    ElseIf Timer - tfirst > tlimit Then
        MsgBox " error" & Err.Description
    Else
        Err.Clear
        Application.Wait Now + TimeValue("00:00:01")
    End If
Loop
© www.soinside.com 2019 - 2024. All rights reserved.