2012-04-22 56 views
2

Selenium WebDriver是否支持多線程?selenium webdriver C#多線程

我試圖用它打開2-4的幾個窗口,它看起來像瀏覽器窗口(Firefox)有時凍結。

當一個線程開始:

_driver.FindElement(By.Id(id)).SendKeys("MyMessage"); 

,並在同一時間另一個線程試圖獲取另一個頁面元素的狀態。

如何處理這個?

有沒有從不同的線程訪問同一頁面的任何recomendations?

如何加快SendKeys方法,並且不允許硒訪問頁面,而SendKeys仍未完成?

回答

2

根據我的經驗,Selenium WebDriver支持多線程相當好(除非你使用IE)。 從您的代碼看來,您在所有線程中都使用相同的驅動程序實例 - 確保每個線程都有自己的WebDriver實例。

+1

如果這沒有幫助,請說出爲什麼,而不是簡單地向下投票。這是我們所有人的學習過程。 – Anders 2012-04-23 15:28:01

+0

爲了什麼是值得的,我正在處理同樣的問題。我試過使用單獨的WebDriver實例(和/或線程靜態字段)來完成這項工作。到目前爲止,這種方法導致了AccessViolations(IE)和Selenium異常(FF),這些異常源於多線程的問題:a)訪問相同的隱式WebDriver服務器,或者b)嘗試啓動多個WebDriver服務器。我認爲成功的方法將需要實例化一個共享服務器實例並指出每個線程的驅動程序實例,但我還沒有完成。 – 2012-04-25 20:27:44

+0

有趣的是 - 自從我運行一個多線程的WebDriver場景以來,已經有一段時間了,事情必定發生了變化(這解釋了downvote)。感謝您的意見,我會做一些挖掘工作,看看能否再次開展工作。 – Anders 2012-04-26 01:01:10