量角器 - 测试运行总是在一段时间后崩溃

时间:2016-01-27 07:56:42

标签: node.js selenium-webdriver automation protractor selenium-chromedriver

我的测试用例中有15个脚本,每次完全运行10个脚本后它总会崩溃。 我不知道是什么原因。

来自webdriver日志的错误:

catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
09:07:52.676 INFO - Executing: [find elements: By.cssSelector: [ng-click="openSettings()"]])
09:07:52.704 INFO - Done: [find elements: By.cssSelector: [ng-click="openSettings()"]]
09:07:52.719 INFO - Executing: [click: 556 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="openSettings()"]]])
09:07:52.769 INFO - Done: [click: 556 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="openSettings()"]]]
09:07:52.788 INFO - Executing: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]])
09:07:55.950 INFO - Done: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
09:07:56.019 INFO - Executing: [find elements: By.cssSelector: div.content-holder])
09:07:56.073 INFO - Done: [find elements: By.cssSelector: div.content-holder]
09:07:56.090 INFO - Executing: [is enabled: 557 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: div.content-holder]])
09:07:56.106 INFO - Done: [is enabled: 557 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: div.content-holder]]
09:07:56.125 INFO - Executing: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]])
09:07:56.153 INFO - Done: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
09:07:56.182 INFO - Executing: [find elements: By.cssSelector: div.content-holder])
09:07:56.207 INFO - Done: [find elements: By.cssSelector: div.content-holder]
09:07:56.219 INFO - Executing: [is displayed: 557 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: div.content-holder]])
09:07:56.245 INFO - Done: [is displayed: 557 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: div.content-holder]]
09:07:56.276 INFO - Executing: [take screenshot])
09:07:56.726 INFO - Done: [take screenshot]
09:07:58.901 INFO - Executing: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]])
09:07:58.953 INFO - Done: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
09:07:58.977 INFO - Executing: [find elements: By.cssSelector: [ng-click="logout()"]])
09:07:59.004 INFO - Done: [find elements: By.cssSelector: [ng-click="logout()"]]
09:07:59.017 INFO - Executing: [click: 558 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="logout()"]]])
09:07:59.066 INFO - Done: [click: 558 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="logout()"]]]
09:07:59.081 INFO - Executing: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]])
09:08:02.493 INFO - Done: [execute async script: try { return (function (rootSelector, callback) {
  var el = document.querySelector(rootSelector);

  try {
    if (!window.angular) {
      throw new Error('angular could not be found on the window');
    }
    if (angular.getTestability) {
      angular.getTestability(el).whenStable(callback);
    } else {
      if (!angular.element(el).injector()) {
        throw new Error('root element (' + rootSelector + ') has no injector.' +
           ' this may mean it is not inside ng-app.');
      }
      angular.element(el).injector().get('$browser').
          notifyWhenNoOutstandingRequests(callback);
    }
  } catch (err) {
    callback(err.message);
  }
}).apply(this, arguments); }
catch(e) { throw (e instanceof Error) ? e : new Error(e); }, [body]]
09:08:02.517 INFO - Executing: [get current url])
09:08:02.530 INFO - Done: [get current url]
09:08:02.550 INFO - Executing: [take screenshot])
09:08:02.762 INFO - Done: [take screenshot]
09:08:02.915 INFO - Executing: [get: http://app.vcita.com/auth/login])
09:08:05.075 INFO - Done: [get: http://app.vcita.com/auth/login]
09:08:07.103 INFO - Executing: [find elements: By.cssSelector: [ng-click="connectWithGoogle()"]])
09:08:07.152 INFO - Done: [find elements: By.cssSelector: [ng-click="connectWithGoogle()"]]
09:08:07.165 INFO - Executing: [is enabled: 559 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="connectWithGoogle()"]]])
09:08:07.181 INFO - Done: [is enabled: 559 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="connectWithGoogle()"]]]
09:08:07.198 INFO - Executing: [find elements: By.cssSelector: [ng-click="connectWithGoogle()"]])
09:08:07.224 INFO - Done: [find elements: By.cssSelector: [ng-click="connectWithGoogle()"]]
09:08:07.234 INFO - Executing: [is displayed: 559 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="connectWithGoogle()"]]])
09:08:07.260 INFO - Done: [is displayed: 559 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="connectWithGoogle()"]]]
09:08:07.277 INFO - Executing: [find elements: By.cssSelector: [ng-click="connectWithGoogle()"]])
09:08:07.294 INFO - Done: [find elements: By.cssSelector: [ng-click="connectWithGoogle()"]]
09:08:07.306 INFO - Executing: [click: 559 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="connectWithGoogle()"]]])
09:08:07.356 INFO - Done: [click: 559 [[ChromeDriver: chrome on XP (c34b09675c4b68b64f4e311473887133)] -> css selector: [ng-click="connectWithGoogle()"]]]
09:08:07.370 INFO - Executing: [get window handles])
09:08:07.430 INFO - Done: [get window handles]
09:08:09.450 INFO - Executing: [get window handles])
09:08:09.481 INFO - Done: [get window handles]
09:08:09.516 INFO - Executing: [switch to window: CDwindow-BB2A3BFA-C4A0-4FBF-9C76-E05F326D7DFB])
09:08:09.543 INFO - Done: [switch to window: CDwindow-BB2A3BFA-C4A0-4FBF-9C76-E05F326D7DFB]
09:08:09.561 INFO - Executing: [find elements: By.id: choose-account-0])
09:08:10.944 WARN - Exception thrown
java.lang.NullPointerException
        at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:386)
        at org.openqa.selenium.remote.RemoteWebDriver.findElementsById(RemoteWebDriver.java:397)
        at org.openqa.selenium.By$ById.findElements(By.java:206)
        at org.openqa.selenium.remote.RemoteWebDriver.findElements(RemoteWebDriver.java:340)
        at sun.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.openqa.selenium.support.events.EventFiringWebDriver$2.invoke(EventFiringWebDriver.java:101)
        at com.sun.proxy.$Proxy1.findElements(Unknown Source)
        at org.openqa.selenium.support.events.EventFiringWebDriver.findElements(EventFiringWebDriver.java:173)
        at org.openqa.selenium.remote.server.handler.FindElements.call(FindElements.java:49)
        at org.openqa.selenium.remote.server.handler.FindElements.call(FindElements.java:1)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:168)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
09:08:10.999 WARN - Exception: null
09:08:11.126 INFO - Executing: [take screenshot])
09:08:11.162 WARN - Exception thrown
org.openqa.selenium.NoSuchWindowException: no such window: target window already closed
from unknown error: web view not found
  (Session info: chrome=47.0.2526.111)
  (Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Windows NT 10.0 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 11 milliseconds
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'vCitaQA', ip: '10.0.0.133', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_65'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=C:\Users\idan\AppData\Local\Temp\scoped_dir8884_17032}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=47.0.2526.111, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: c34b09675c4b68b64f4e311473887133
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
        at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
        at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:599)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:622)
        at org.openqa.selenium.remote.RemoteWebDriver.getScreenshotAs(RemoteWebDriver.java:324)
        at org.openqa.selenium.remote.server.handler.CaptureScreenshot.call(CaptureScreenshot.java:35)
        at org.openqa.selenium.remote.server.handler.CaptureScreenshot.call(CaptureScreenshot.java:1)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:168)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
09:08:11.283 WARN - Exception: no such window: target window already closed
from unknown error: web view not found
  (Session info: chrome=47.0.2526.111)
  (Driver info: chromedriver=2.14.313457 (3d645c400edf2e2c500566c9aa096063e707c9cf),platform=Windows NT 10.0 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 11 milliseconds
Build info: version: '2.45.0', revision: '5017cb8', time: '2015-02-26 23:59:50'
System info: host: 'vCitaQA', ip: '10.0.0.133', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_65'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, chrome={userDataDir=C:\Users\idan\AppData\Local\Temp\scoped_dir8884_17032}, takesHeapSnapshot=true, databaseEnabled=false, handlesAlerts=true, version=47.0.2526.111, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}]
Session ID: c34b09675c4b68b64f4e311473887133

请帮助找出原因。 感谢。

0 个答案:

没有答案
相关问题