Chromedriver在Javascript执行上运行缓慢
背景 我正在使用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位 如能帮助解决此问题,我们将不胜感激 谢谢 以下是所要求的功能Chromedriver在Javascript执行上运行缓慢,javascript,selenium,webdriver,Javascript,Selenium,Webdriver,背景 我正在使用SeleniumWebDriver.Net进行编码,MSTest正在Visual Studio 2012和MSTest cmd中使用,以便运行测试 我在Chromedriver中遇到了一个奇怪的问题,Javascript的执行极大地降低了测试的执行速度。我在测试中使用javascript来等待forajax、ScrollToElemet和函数 当我一次执行一个测试时,它执行得非常快。但是当我将它们作为一个套件执行时,第一个测试执行得很快,从第二个测试开始,执行速度明显减慢 我的配
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函数的代码