我正在进行Selenium WebDriver自动化,我正面临一个非常关键的框架问题。在我的应用程序中有名为的链接 - 打印。当用户点击“打印”链接时...将打开一个框架窗口。在该框架上有提交按钮以及复选框和链接。当用户选择一些复选框并点击"提交"按钮那个时间结果意味着"选中的复选框及其链接"显示在该帧上。
但是问题就像有很多链接在一段时间后加载。我们有要求不要使用显式等待,因为我们正在进行性能测试。因此,我必须哭泣,直到所有帧内容加载而没有明确的等待。
我尝试了很多类似的事情
while (!table.FindElement(By.XPath("//*[contains(text(),'" + tin +
"')]/following::span")).Text.Equals("Complete"))
//while(!table.FindElement(By.XPath("//*[contains(text(),'" + tin +
"')]/following::span")).Text.Equals("Complete"))
{
continue;
}
TWOBase.Logger.LogInfo("Printed return " + tin + " is displayed in Print Returns Results Grid with Status
Complete");
简而言之,我必须验证 - 当数字为TIN时,状态应该已经完成......但需要时间
注意:我可以切换到帧,我也可以验证TIN号和状态,但我必须避免等待......一旦帧完全加载并准备好,我必须读取网格。
这是我的完整方法:
2.
public void TestMethod(List<string> ssn)
{
try
{
TWOBase.Driver.SwitchTo().Frame(0);
TWOBase.Logger.LogInfo("Print Returns Results Dialog Box Is Opened");
IWebElement table = TWOBase.Driver.FindElement(By.Id("ctl00_ContentPlaceHolder_ResultsGrid"));
TWOBase.Logger.LogInfo("Verifying Print returns are displayed in Print Returns Results...");
foreach (string tin in ssn)
{
while (!table.FindElement(By.XPath("//*[contains(text(),'" + tin +
"')]/following::span")).Text.Equals("Complete"))
{
continue;
}
TWOBase.Logger.LogInfo("Printed return " + tin + " is displayed in Print Returns Results Grid with Status Complete");
}
TWOBase.Stop();
if (!ReturnDisplayed)
TWOBase.TestCaseResult = false;
}
catch (Exception ex)
{
TWOBase.Logger.LogException(ex);
}
}