根据我的判断,似乎没有通过搜索找到任何简单的答案。
场景
JSF页面包含一个表单。有一个dropdown元素,当发生更改时,它会发送XHR(而不是jQuery)Ajax调用来更新DOM。对于所有意图而言,更新都是难以区分的-它仍然具有相同的字段,但是会重新加载它们。由于所有这些都是通过JSF完成的,因此最好假定我无法修改/修改页面的JS或功能。
使用硒/黄瓜,我需要执行一个步骤,它将“等待”直到XHR完成。该不使用jQuery ,因此jQuery.active
在整个请求中返回0
。
我也不能在任何DOM元素上使用任何“等到”方法,因为它们不会改变-在XHR完成后只需“重新构建”即可。也没有其他加载“提示”,例如Spinner。
Chrome中的开发人员工具似乎可以在“网络”中计时XHR的开始和完成时间,但是我不知道是否通过另一层完成-而不是我可以通过控制台返回的任何值。
到目前为止,我发现的任何方法似乎都依赖于JS注入-这将不可能吗?
答案 0 :(得分:1)
根据评论,此问题通过等待直到
ExpectedConditions.stalenessOf( getWebDriver().findElement( By.id( webElement ) ) )
,然后等待直到
ExpectedConditions.visibilityOfElementLocated( By.id( webElement )