Chromedriver对Javascript执行缓慢

时间:2015-04-02 13:57:06

标签: javascript selenium webdriver

背景 我正在使用Selenium Webdriver .Net进行编码,并且在Visual Studio 2012和MSTest cmd中使用MSTest以运行测试。

我在Chromedriver遇到了一个奇怪的问题,Javascript执行极其减慢了测试执行速度。例如: - 我在我的测试中使用javascript to WaitForAjax,ScrollToElemet和函数。

当我一次执行一个测试时,它执行得非常快。但是当我将它们作为套件执行时,第一个测试快速执行并从第二个测试开始,执行速度显着降低。

我的配置如下:

  • Chrome版本:41.0.2272.118 m
  • Chrome驱动程序:2.14
  • Selenium .Net:2.44
  • Windows:7 Enterprise 64位

任何帮助都将不胜感激,以解决此问题。

由于

以下是所要求的功能

public static IWebElement ScrollToElement(this IWebElement element)
    {
        try
        {
            IJavaScriptExecutor executor = (IJavaScriptExecutor)driver;
            executor.ExecuteScript("window.scrollTo(" + element.Location.X + "," + (element.Location.Y - 500) + ");");
        }
        catch (Exception)
        {
        }
        return element;
    }

public static void WaitForAjax(this IWebDriver driver, int timeout = 60)
    {
        IJavaScriptExecutor javascript = driver as IJavaScriptExecutor;
        if (javascript == null)
        {
            // Log a warning
        }
        else
        {
            try
            {
                var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60));
                wait.Until(drv => (bool)(drv as IJavaScriptExecutor).ExecuteScript("return jQuery.active == 0"));
            }
            catch (WebDriverTimeoutException ex)
            {
                Assert.Inconclusive(string.Format("Ajax Calls Didn't Complete After: {0} seconds. Exception message: {1}", timeout, ex.Message));
            }
        }
    }

0 个答案:

没有答案