selenium 从循环中捕获错误

iyfjxgzm  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(119)

如果一分钟后对象没有找到,我想输出一个Msgbox“错误”你能帮我吗?谢谢!

Do While IsError(bot.FindElementByXPath("//*[@id='overviewgrid']/div[2]/table/tbody/tr[2]/td[2]/div/div/div[3]/table/tbody/tr[19]/td[18]/a[2]/span")) = True
Loop
hmae6n7t

hmae6n7t1#

尝试使用一个结束时间,以便在找不到元素时跳过所有内容。

Sub timerExitLoop()
    Dim endTime As Double
    endTime = Now + TimeValue("0:01:00")
    Do While IsError(bot.FindElementByXPath("//*[@id='overviewgrid']/div[2]/table/tbody/tr[2]/td[2]/div/div/div[3]/table/tbody/tr[19]/td[18]/a[2]/span")) = True
        If Now > endTime Then GoTo Err
    Loop
    'continue your code here
    
    Exit Sub
Err:
    MsgBox ("Error, can't find the element")
End Sub

我对错误处理还是个新手,所以可能有更好的方法来捕捉这个问题。如果你的代码在找不到它的情况下还需要继续,使用类似的GoTo skipError功能来解决它(因为你只希望msgbox在没有找到它的情况下说error)。

相关问题