2015-11-10 23 views
-1

我試圖找到一種方法,採取截圖(我有創建的方法)任何時候有一個「ElementNotFoundError」沒有腳本有到處定義它(例如, ,每個我通過搜索元素的時間「然後(driver.findElement(By.id())。點擊())」,我不必總是指定要採取截圖中的‘捕捉’。硒和Node.js的ElementNotFoundError或NoSuchElementError

下面是一個典型ElementNotFound錯誤:

/Users/nhyland/Documents/www/Selenium/node_modules/selenium-webdriver/lib/goog/async/nexttick.js:41 
goog.global.setTimeout(function() { throw exception; }, 0); 
^ 
NoSuchElementError: Unable to locate element: {"method":"class name","selector":"loginID"} 
at new bot.Error (/Users/nhyland/Documents/www/Selenium/node_modules/selenium-webdriver/lib/atoms/error.js:108:18) 
at Object.bot.response.checkResponse (/Users/nhyland/Documents/www/Selenium/node_modules/selenium-webdriver/lib/atoms/response.js:109:9) 
at /Users/nhyland/Documents/www/Selenium/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:379:20 
at promise.Promise.goog.defineClass.invokeCallback_ (/Users/nhyland/Documents/www/Selenium/node_modules/selenium-webdriver/lib/goog/../webdriver/promise.js:1337:14) 

回答

0

找到了答案..這裏是我創建的代碼:

webdriver.promise.controlFlow().on('uncaughtException', e => { 
    console.error('Unhandled error. Taking screenshot.'); 
    console.log(util.inspect(e.message)); 
    if(e.name) { 
     TakeScreenshot(driver, './Screenshots/'+ e.name); 
    } else { 
     TakeScreenshot(driver, './Screenshots/UncaughtNoState'); 
    } 
});