gpt4 book ai didi

selenium - 确定 jqGrid 是否已加载并准备好使用 Selenium 的最佳方法

转载 作者:行者123 更新时间:2023-12-03 00:35:14 25 4
gpt4 key购买 nike

如何通过 selenium 确定 jqGrid 是否已加载并准备好使用。

一些细节:

  • 我使用 C# 驱动程序
  • 我有一个方法: 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 (':可见'))";

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;
}

查找 jqGrid 是否有记录并加载完成。

我需要更好的东西 - 因为如果我们使用 jqGrid 的本地数据,即使上面的两个也不会让驱动程序等待加载完成。我也很好奇什么是最好的方法,或者至少是其他人如何处理这个问题。

最佳答案

我以前从未使用过 Selenium,所以我不确定我是否正确理解了你的问题。 jqGrid 将首先初始化,然后(可选)可以从服务器加载数据。在初始化阶段原<table id="grid"></table>元素将被转换为相对复杂的HTML片段,即网格。在初始化结束时,表的 DOM 元素( $("#grid")[0] )将获得扩展 grid .

所以你可以使用这样的测试

if ($("#grid")[0].grid) {
// grid is initialized
}

确定网格已经初始化。 jqGrid 在内部使用相同的测试(例如,参见 here)。

关于selenium - 确定 jqGrid 是否已加载并准备好使用 Selenium 的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11757595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com