我正在尝试创建一个循环,因此它会尝试单击该元素,直到找到它。但是,它不遵守 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 的条件。
如果有人可以评论并帮助我,我将不胜感激..非常感谢
当我尝试你的代码时,它正在工作。唯一的问题是你的计时器设置为 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