Selenium Webdriver等待加载c#

时间:2015-07-14 15:02:54

标签: c# selenium selenium-webdriver frame

我正在进行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);

            }

        }

0 个答案:

没有答案