我正在使用下面的 ExpectedCondition 方法来确保元素消失,然后我的测试继续进行
wait.until(EC.invisibility_of_element_located((By.XPATH,busyIndicator)))
我正在做的是点击保存按钮。它将显示 busyindicator 对象。保存操作完成后,忙指示器消失,表示保存操作已完成。
这里,虽然 busyindicator 对象很快从 UI 中消失,但我上面的 webdriver 命令仍然需要将近 30-40 秒来确保这个元素被删除。
需要帮助 1)如何优化上面的代码,使其快速执行 2) 确保元素消失的其他更好方法。
请您参考如下方法:
确保您没有设置隐式超时或在等待前将其设置为 0:
driver.implicitly_wait(0)
WebDriverWait(driver, 30).until(EC.invisibility_of_element_located((By.XPATH,busyIndicator)))
隐式超时适用于任何命令,也适用于 WebDriverWait 使用的 _find_element。
在您的情况下,忙碌指示器可能已从 DOM 中删除。显式等待隐身调用 find_element。由于该元素不在 DOM 中,因此需要隐式超时才能完成。如果您有隐式等待 30 秒,则需要 30 秒。只有这样显式等待才能成功完成。添加忙碌指示器可见的时间,您处于 30-40 秒。
