Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Chromedriver在Javascript执行上运行缓慢_Javascript_Selenium_Webdriver - Fatal编程技术网

Chromedriver在Javascript执行上运行缓慢

Chromedriver在Javascript执行上运行缓慢,javascript,selenium,webdriver,Javascript,Selenium,Webdriver,背景 我正在使用SeleniumWebDriver.Net进行编码,MSTest正在Visual Studio 2012和MSTest cmd中使用,以便运行测试 我在Chromedriver中遇到了一个奇怪的问题,Javascript的执行极大地降低了测试的执行速度。我在测试中使用javascript来等待forajax、ScrollToElemet和函数 当我一次执行一个测试时,它执行得非常快。但是当我将它们作为一个套件执行时,第一个测试执行得很快,从第二个测试开始,执行速度明显减慢 我的配

背景 我正在使用SeleniumWebDriver.Net进行编码,MSTest正在Visual Studio 2012和MSTest cmd中使用,以便运行测试

我在Chromedriver中遇到了一个奇怪的问题,Javascript的执行极大地降低了测试的执行速度。我在测试中使用javascript来等待forajax、ScrollToElemet和函数

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

我的配置如下:

Chrome版本:41.0.2272.118 m Chrome驱动程序:2.14 Selenium.Net:2.44 Windows:7企业版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));
            }
        }
    }

第一个测试执行得很快,从第二个测试开始,执行速度明显减慢。-让我想知道测试是否没有中断…有没有一种方法可以共享WaitForAjax、ScrollToElemet函数?想知道他们是否做了一些奇怪的事情我不认为测试被破坏了,我选择了不同的测试集。但从第二次测试开始,每次执行都会减慢。请注意,我在每次测试后关闭浏览器会话,并在下一次测试中启动一个新会话。我已经添加了WaitForAjax、ScrollToElemet函数的代码