1
我们在我们的应用程序中使用Tapestry 5.3.8。集成测试使用Selenium 2.53.1实现。在JavaScript中等待挂毯效果
有时,硒测试需要等待一些行动,直到它完成。如果Tapestry例如调用AJAX请求,测试将执行以下代码,直到AJAX请求完成。
new WebDriverWait(driver, 10).until(new ExpectedCondition<Boolean>()
{
@Override
public Boolean apply(final WebDriver webDriver)
{
String js = "return window.Ajax.activeRequestCount";
Long count = (Long) ((JavascriptExecutor) webDriver).executeScript(js);
return count.longValue() == 0;
}
});
现在,让我们考虑的Tapestry模板下面的代码片段:
<t:formfragment t:id="repeatedDate" element="fieldset" show="show" hide="fade" visible="dateRepeated">
...
</t:formfragment>
...
<t:checkbox value="dateRepeated" t:mixins="triggerfragment" fragment="repeatedDate"/>
当适当的复选框被选中的片段出现与挂毯效应“秀”。
有没有办法在Selenium测试中等待效果的完成?换句话说,是否有一些JavaScript表达式在效果进行时评估为false
,并在完成时评估为true
?
谢谢。