等待直到Chrome中出现警报

时间:2019-05-01 00:52:10

标签: excel vba selenium

我有一个excel宏,可以将数据输入Web表单(使用Sng和Web驱动程序)。每次提交后(单击“提交”按钮),都会弹出一个弹出窗口,并通过运行此代码行obj.SwitchToAlert.accept在该警报上单击“确定”以继续循环。整个代码运行正常。唯一的问题是警报有时需要5到10秒才能显示。到那时,代码继续单击按钮并给出错误信息(因为还没有弹出警报)。

宏有什么方法可以等到警报出现后再运行obj.SwitchToAlert.accept

1 个答案:

答案 0 :(得分:1)

SwitchToAlert方法中,您忽略了其他参数。

特别是一个Optional Timeout As long = -1参数。将其设置为一个值,例如20。这意味着将等待最长时间 20秒,警报才会出现,然后单击“接受”。如果它在5秒钟内出现,则只需等待5秒钟(而不是完整的20秒钟)。

obj.SwitchToAlert(20).accept

您要使用的行。

使用默认值-1时,您要告诉此方法使用5秒的全局默认超时。您可以通过更改obj.Timeouts.ImplicitWait属性来更改此全局值。