我有一个excel宏,它将数据输入到web表单中(使用selenium和web驱动程序)。每次提交后(单击submit按钮),就会出现一个弹出窗口,并通过运行此代码行obj.SwitchToAlert.accept继续循环,宏单击该警报。整个代码运行良好。唯一的问题是,有时警报需要5-10秒才能出现。此时,代码将继续单击按钮并产生错误(因为尚未出现任何警报弹出)。
在运行obj.SwitchToAlert.accept之前,宏可以等到警报出现后再运行吗?
发布于 2019-05-01 00:59:54
您忽略了SwitchToAlert方法中的其他参数。
特别是Optional Timeout As long = -1参数。将其设置为一个值,如20。这意味着它将等待最长20秒的时间,以便您的警报出现,然后单击“接受”。如果它在5秒内出现,则只需等待5秒(而不是整个20秒钟)。
obj.SwitchToAlert(20).accept将是你想要使用的线路。
当您使用-1的默认值时,您告诉该方法使用全局默认超时,即5秒。可以通过更改obj.Timeouts.ImplicitWait属性来更改此全局值。
https://stackoverflow.com/questions/55930409
复制相似问题