1

我正在尝试使用 C# 和 InternetExplorerDriver 运行一些测试。

此代码在 64 位 Windows Server 2012 上执行。

在导航到新 URL 后,我正在调用一个函数,该函数会等待页面加载\20 秒超时。

private bool waitForPageToLoad()
    {
        try
        {
            int timeout = int.Parse(ConfigurationManager.AppSettings["TimeoutForCustomExpression"]);
            IWait<IWebDriver> wait = new OpenQA.Selenium.Support.UI.WebDriverWait(m_driver, TimeSpan.FromSeconds(timeout));

            wait.Until(driver1 => ((IJavaScriptExecutor)m_driver).ExecuteScript("return document.readyState").Equals("complete"));
        }
        catch//(Exception e) //timeout
        {
            log(e.Message + e.StackTrace);
            return false;
        }
        return true;
    }

该功能适用​​于除 IE 以外的所有浏览器。

在 IE 上,我的日志中出现以下错误:

JavaScript 错误 (UnexpectedJavaScriptError) 在 OpenQA.Selenium.Support.UI.DefaultWait 1.PropagateExceptionIfNotIgnored(Exception e) in c:\Projects\WebDriver\trunk\dotnet\src\WebDriver.Support\UI\DefaultWait.cs:line 222 at OpenQA.Selenium.Support.UI.DefaultWait1.Until[TResult](Func`2 条件) 在 c:\Projects\WebDriver\trunk\dotnet\src\WebDriver.Support\UI\DefaultWait.cs :MainClass.waitForPageToLoad() 的第 180 行

我不知道为什么会这样。有人可以帮我吗?

真诚的,亚当。

4

1 回答 1

0

如果没有看到 Arran 要求的所有额外信息,就很难帮助您理解错误。但是,如果您只是在寻找适用于所有浏览器的快速修复程序,我总是只使用 Thread.sleep(int milliseconds); C# 中的 Selenium 测试,这些测试需要等待页面加载或某个元素在继续之前呈现。

于 2013-10-30T18:10:37.960 回答