一尘不染

Selenium Webdriver(VBA):显式等待

selenium

我正在浏览一个Web应用程序,如果尝试单击某个元素之后才能与之交互,则该Web应用程序通常会引发错误。

使用Selenium WebDriver(java)时,我可以轻松解决此问题:

 WebDriverWait wait = new WebDriverWait(driver, 15);

 wait.until(ExpectedConditions.elementToBeClickable(By.id("element")));

但是,我试图使用Selenium类型库在VBA中编写脚本,尽管尝试了许多不同的方法,但我唯一的成功是:

webdriver.wait

有人告诉我,应该尽可能避免这样做。如果有人可以建议如何将Java转换为VBA或提供任何其他解决方案,我将不胜感激。


阅读 447

收藏
2020-06-26

共1个答案

一尘不染

VBA的硒插件是非官方的,不支持此功能。

您可以通过使用onError重试产生错误的操作,直到错误成功或超时,来解决此问题:

Sub test
    OnError GoTo Retry
        webDriver.findElementById("element")
    Exit Sub

    Dim i as integer
    :Retry
        webDriver.Wait(500)
        i = i + 1
        if i = 20 then onerror go to 0
    Resume
end sub
2020-06-26