2014-01-21 38 views
1

我在我的网页已经刷新与各种行动(重新加载,排序,过滤等)网格。每次应用其中一项操作时,微调器出现在网格前面,直到网格中的数据重新加载。微调器可能需要300到3000毫秒才能出现,微调器可能会在那里停留几秒钟。在同样的情况下,网格在没有微调的情况下被重新加载,但无法预测它的外观。有没有什么办法可以用Explicit WebDriver Wait来等待那个微调而不会收到NoSuchElementException呢?如何等待网格执行微调与Java显式WebDriver等待

+0

WebDriverWait背后的想法是在超时之前等待屏幕上出现一个元素。如果你的微调不可预测,并不总是出现,你可以尝试解释它并将其作为错误条件处理,但我会尝试找到更一致的不同元素,是否有另一个元素可以使用? –

回答

0

使用Firebug,检查微调器的属性。大多数时候他们有宽度/高度属性。当显示并显示微调框时,您可以获取该属性值。然后您可以编写逻辑来等待,直到属性具有非显示值。

+1

问题是它在启动之前没有显示值。所以没有办法知道值是在“之前”还是“之后”出现 – mbeider

0

首先等待微调器出现,然后等待它消失。

在第一次等待时,您给它一个短暂的超时(可能是2秒,也许是10),但是如果超时,不要抛出任何异常。继续前进(因为它可能意味着微调器出现并消失的速度比硒能检测到的要快)。

然后在第二次等待时,给它一个更长的超时时间,并在末端出现微调器时抛出异常。