【发布时间】:2014-11-23 01:58:49
【问题描述】:
<div id="loader-mid" style="position: absolute; top: 118.5px; left: 554px; display: none;">
<div class="a">Loading</div>
<div class="b">please wait...</div>
</div>
并想等到它消失。我有以下代码,但有时它等待的时间太长,并且在某些代码点它突然冻结所有进程,我不知道为什么。
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
self.wait = WebDriverWait(driver, 10)
self.wait.until(EC.invisibility_of_element_located((By.XPATH, "//*[@id='loader_mid'][contains(@style, 'display: block')]")))
我也试过这个:
self.wait.until_not(EC.presence_of_element_located((By.XPATH, "//*[@id='loader_mid'][contains(@style, 'display: block')]")))
我不知道如何检查,但也许我的元素总是出现在页面上并且 selenium 认为它在那里,唯一改变的是参数显示从无变为块。我想我可以得到像字符串这样的属性,并检查是否有“块”这个词,但它太不对劲了……请帮帮我。
【问题讨论】:
-
您是否尝试过检查隐藏在加载器后面的元素的可见性?
-
是的,但对我没有帮助。但不知何故,现在第二个变体起作用了。奇怪。
-
是的,这很奇怪。