2016-08-30 139 views
8

我有一個難以重現的點擊錯誤。點擊次數爲1-2/10000,以OpenQA.Selenium.WebDriverTimeoutException結束。 它看起來像元素沒有被點擊,驅動程序等待一些反應。Selenium WebDriver在RemoteWebElement.Click上拋出WebDriverTimeoutException()

Message: timeout: cannot determine loading status 
from timeout: Timed out receiving message from renderer: -0.028 
    (Session info: chrome=52.0.2743.116) 
    (Driver info: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.3.9600 x86_64) 
Stack trace: 
    at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) 
    at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) 
    at OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute(String driverCommandToExecute, Dictionary`2 parameters) 
    at OpenQA.Selenium.Remote.RemoteWebElement.Execute(String commandToExecute, Dictionary`2 parameters) 
    at OpenQA.Selenium.Remote.RemoteWebElement.Click() 

有時超時異常消息看起來合法(300秒),但在大多數情況下它具有負值,如-0.028。

我用:

Chrome 52.0.2743.116 
Selenium 2.53.1 
ChromeDriver 2.23 (also produces with 2.22) 

更新:

我開始還收到此錯誤上RemoteNavigator.GoToUrl

Type: OpenQA.Selenium.WebDriverTimeoutException 
Message: timeout: cannot determine loading status 
from timeout: Timed out receiving message from renderer: -0.032 
    (Session info: chrome=52.0.2743.116) 
    (Driver info: chromedriver=2.23.409699 (49b0fa931cda1caad0ae15b7d1b68004acd05129),platform=Windows NT 6.3.9600 x86_64) 
Stack trace: 
    at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) 
    at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) 
    at OpenQA.Selenium.Remote.RemoteWebDriver.set_Url(String value) 
    at OpenQA.Selenium.Remote.RemoteNavigator.GoToUrl(String url) 
+1

如果您粘貼代碼,那將會很棒。 – amitbobade

+0

@amitbobade它發生在我稱之爲'IWebElement.Click()'的很多地方,但非常罕見且不可預知。 –

+0

很酷。 ChromeDriver版本是什麼? – amitbobade

回答

0

通過減少我的測試的並行度解決了這個跑步者從30到10.它看起來像過度使用CPU會導致請求無法訪問Web驅動程序出於某種原因。

+0

嗨 - 您是否更改了此設置?我正面臨類似問題 –

+0

嗨,@Ctrl_Alt_Defeat。我用我的自定義測試運行器來管理併發webdriver的執行,所以我只是降低了並行度來解決這個問題,這對我很有幫助。 「ChromeDriver」可能不適用於高度併發的系統。 –

0

小峯到硒源代碼,就會發現在WebElement每一個動作或事實上任何硒相互作用都會引起execute(String driverCommand, Map<String, ?> parameters)RemoteWebDriver class

這將通過CommandExecutorInterface這是由不同的駕駛員

ChromeDriver也實現了這一點,你所看到的這個錯誤實施,由於其鉻團隊意識到並正在錯誤執行命令。請在這裏查看錯誤細節。

錯誤率已經下降與Chromedriver v2.23,但它仍然存在,但很少

Bug#1362

Bug#817

Bug#1224

0

我發現問題的根本原因,至少在我的情況下。我們正在使用代理服務器的Jenkins機器上運行硒測試。只有當我們啓用日誌記錄到全部時,我們才發現這個問題。它是一個衆所周知的事實,即websockets不能與代理和chromedriver一起使用websockets來獲取瀏覽器日誌。所以我們禁用了代理,問題就解決了。