Selenium IE WebDriver .NET在等待元素可点击时超时

时间:2016-08-11 12:27:25

标签: .net angularjs selenium-webdriver timeout internet-explorer-11

我正在使用IE WebDriver来测试AngularJS Web应用程序。当我在TFS构建服务器上执行测试时出现问题。有一个html textarea元素,我想插入一些文本。但首先我在等待元素可点击。有时它可以工作,但主要是驱动程序抛出超时异常。

在等待元素可点击之前,我尝试滚动到元素位置,但没有帮助。

纯MVC页面没有这个问题。当元素包含在使用ng-include由angular加载的外部.html文件中时是否有任何问题?元素可以“找到”,顺便说一句,我可以看到它,所以很明显。当我使用鼠标和键盘时,我可以毫无问题地插入文本。

    public void EnterText(string elementId, string text)
    {
        this.Driver.WaitUntil(_ => this.Driver.ExecuteScript("return document.readyState").Equals("complete"));
        this.Driver.WaitUntil(ExpectedConditions.PresenceOfAllElementsLocatedBy(By.Id(elementId)));

        var element = this.Driver.FindElement(By.Id(elementId));
        this.Driver.ExecuteScript("arguments[0].scrollIntoView(true);", element);

        element = this.Driver.WaitUntil(ExpectedConditions.ElementToBeClickable(By.Id(elementId)));

        element.Clear();
        element.SendKeys(text);
    }

Selenium / WebDriver版本:2.48.0 AngularJS版本:1.5.6 .NET Framework:4.5

修改

硒测试实际上涵盖了我的应用程序中的问题!有嵌套和低效的ng-repeat语句导致Internet Explorer大幅减速,因此无法处理输入。有时需要一分钟才能恢复,这就是为什么即使是漫长的等待也无济于事。 见IE11 slow / freeze with AngularJS's ng-repeat rendering

0 个答案:

没有答案