我对碎片有一些厌恶行为。我愿意
button.click()
assert not button.visible # Fails
然后我做
button.click()
time.sleep(1)
assert not button.visible # Succeeds
这太糟糕了...这是有意的行为吗?其他所有内容似乎都在轮询并等待一段时间,然后失败。
我不确定 Splinter 在内部是如何工作的,但看起来您正在使用属性访问并且它可能被缓存。你试过吗:
assert not browser.is_element_visible_by_css("#my-button-id")
is_element_visible_by_css
始终有一个隐式等待,您可以在 Splinter 设置中配置。请注意,在浏览器(Selenium)测试中,一切都有隐式等待,因为浏览器DOM操作是异步发生的,并且当某些元素变得可见或消失时,没有反向通道来获取信息。