在页面上,我有一个HTML元素,它会在几秒钟(几分钟)之后发生变化:
<div style="opacity: 1; width: 100%;" id="progressbar-overlay" class="wings-progressbar-overlay"></div>
为:
<div style="opacity: 0; width: 0%;" id="progressbar-overlay" class="wings-progressbar-overlay"></div>
它是装载机的一部分。 我想等到这个元素发生变化。
我已尝试过这个:
element = self.check_element(By.ID, "progressbar-overlay", "Progressbar wasn't displayed", tekst)
for x in range(0, 120):
if element.value_of_css_property("opacity")==1:
print element.value_of_css_property("opacity") + " not yet"
else:
print element.value_of_css_property("opacity") + " end"
break
但结果是:
1 en。
23.021s中的Ran 1测试
行 d
为什么它不起作用以及如何等待这个元素的改变?
答案 0 :(得分:2)
请参阅以下示例。此函数将等到第二个div出现在DOM中。
import time
...
...
def wait_for_complete_page_load(browser, total_wait=100):
try:
elem = browser.find_element_by_xpath('//div[contains(@style, "opacity: 0")]')
except:
total_wait -= 1
time.sleep(2)
if total_wait > 1: wait_till_page_loaded(browser, total_wait)