2016-06-28 32 views
5

我試圖做一個自動化測試我的網頁,我用茉莉花與硒聯合使用。Chromdriver2.21.2失敗「沒有這樣的會話」

當在chrome上測試時(使用chromedriver),我得到了不可預知的下面的錯誤。它經常發生,當我運行一個測試套件時,它幾乎無法完成。

伊夫發現這個bug的證據,但不能找到一個堅實的答案:https://bugs.chromium.org/p/chromedriver/issues/detail?id=732(當然這是對鉻和我使用鉻)

WebDriverError: no such session 
    (Driver info: chromedriver=2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform=Mac OS X 10.11.5 x86_64) 
    at WebDriverError (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/error.js:27:10) 
    at Object.checkLegacyResponse (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/error.js:639:15) 
    at parseHttpResponse (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/http/index.js:538:13) 
    at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/http/index.js:472:11 
    at ManagedPromise.invokeCallback_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:1379:14) 
    at TaskQueue.execute_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2913:14) 
    at TaskQueue.executeNext_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2896:21) 
    at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2820:25 
    at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:639:7 
    at process._tickCallback (node.js:369:9) 
From: Task: WebElement.isDisplayed() 
    at Driver.schedule (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/webdriver.js:377:17) 
    at WebElement.schedule_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/webdriver.js:1744:25) 
    at WebElement.isDisplayed (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/webdriver.js:2110:17) 
    at driver.findElements.then.error (/Users/XXXXXXX/Documents/sweetmeeting/Test/front_end_testing/spec/dashboard_tester.js:251:34) 
    at ManagedPromise.invokeCallback_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:1379:14) 
    at TaskQueue.execute_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2913:14) 
    at TaskQueue.executeNext_ (/Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2896:21) 
    at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:2775:27 
    at /Users/XXXXXXX/Documents/sweetmeeting/node_modules/selenium-webdriver/lib/promise.js:639:7 
    at process._tickCallback (node.js:369:9) 
+0

嘗試使用最新的[ChromeDriver 2.22](http://chromedriver.storage.googleapis.com/index.html?path=2.22/) – Madhan

回答

8

我們也一直在這個問題掙扎了很久現在是時候,最近解決了它,所以我認爲我會在這裏發佈它幫助別人。

對我們來說這是內存相關的。我們在Docker容器中運行我們的測試,並且docker默認dev/shm大小爲64mb。增加這個解決了我們「沒有這樣的會議」問題。

我們使用docker compose,只是將shm_size:256M添加到docker-compose.yml文件中。

+3

有同樣的問題,增加shm即使是2GB!沒有幫助我,似乎不是由shm大小造成的錯誤 – ShockwaveNN

+0

你能解釋它是如何與內存限制相關的嗎?難道是由於內存不足導致驅動程序崩潰,然後Selenium綁定無法與其通信? –

5

我最近也遇到過這個異常。它最初似乎也是不確定的,但經過徹底調查後,我意識到,如果您調用ChromeDriver.Close()並嘗試FindElement,它會以確定的方式發生。

在我的情況下,ChromeDriver.Close()在之前的測試的異常處理程序中被調用,該測試由於計時問題而發生。這隻影響下一個測試,所以它增加了感覺這個問題是片狀的。但正如我所說,我的調查顯示這是確定性的。

話雖如此,這是我對這個錯誤的經驗。可能是你的情況不同...

相關問題