背景 我正在使用Selenium Webdriver .Net进行编码,并且在Visual Studio 2012和MSTest cmd中使用MSTest以运行测试。
我在Chromedriver遇到了一个奇怪的问题,Javascript执行极其减慢了测试执行速度。例如: - 我在我的测试中使用javascript to WaitForAjax,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));
}
}
}