如何通过selenium找出jqGrid是否已加载并准备好使用.
一些细节:
new WebDriverWait(driver, new TimeSpan(0, 0, 0, 30)).Until(x => loadingdissapearedcondition)我使用等待,直到Loading ..元素消失.private const string script = @"return ($('#{0}').jqGrid('getGridParam', 'reccount') !=x undefined) && ($('#{0}').jqGrid('getGridParam', 'reccount') != 0) && (!$('#load_{0}').is(':visible')) && (!$('#busyIcon').is(':visible'))";
private readonly string waitScript;
waitScript = string.Format(script, jqGridId);
public void WaitUntilLoadIconDissappears()
{
driver.WaitUntil(MAXWAIT, Wait);
}
public bool Wait()
{
var executeScript = ((IJavaScriptExecutor) driver).ExecuteScript(waitScript);
bool result;
bool tryParse = bool.TryParse(executeScript.SafeToString(), out result);
return tryParse && result;
}
Run Code Online (Sandbox Code Playgroud)
找到jqGrid是否有记录和加载完成.
我需要更好的东西 - 因为即使上面的两个也没有让驱动程序等到加载完成,如果我们使用jqGrid的本地数据.我也很好奇什么是最好的方式,或者至少是其他人如何处理这个问题.
Ole*_*leg 12
我之前从未使用过Selenium,所以我不确定我是否正确理解了你的问题.首先初始化jqGrid,然后(可选)从服务器加载数据.在初始化阶段,原始<table id="grid"></table>元素将被转换为相对复杂的HTML片段,即网格.在初始化结束时,表(the $("#grid")[0])的DOM元素将获得expando grid.
所以你可以使用像这样的测试
if ($("#grid")[0].grid) {
// grid is initialized
}
Run Code Online (Sandbox Code Playgroud)
确定网格已初始化.jqGrid在内部使用相同的测试(例如,请参见此处).
| 归档时间: |
|
| 查看次数: |
8446 次 |
| 最近记录: |