[英]how to make webdriver threadsafe in c#?
我已經在Google中搜索過,但沒有找到解決方案。 有人可以幫我解決這個問題,因為我可以在Java中找到解決方案,但在C#中找不到。
private static final ThreadLocal < WebDriver > webDriver =
new ThreadLocal < WebDriver > () {
@Override protected WebDriver initialValue() {
return BrowserType.getBrowserType().getInstance();
}
};
使用C# ThreadLocal
,像這樣嗎?
public static ThreadLocal<IWebDriver> webDriver =
new ThreadLocal<WebDriver>(() =>
{
return new InternetExplorerDriver();
});
希望您輸入的是正確的:
using OpenQA.Selenium;
using OpenQA.Selenium.IE;
注意,除非需要,否則我幾乎不會用C#編寫代碼。
永遠不能保證Selenium
線程安全,嚴格來說,它不是線程安全的。 請參考這里
Java解決方案:
多線程客戶端代碼應使用它來斷言它以線程安全的方式訪問webdriver。 將WebDriver實例包裝如下:
WebDriver driver = ThreadGuard.protect(new FirefoxDriver());
與不正確的客戶端線程相關的線程問題可能具有神秘性,難以診斷錯誤。 使用此包裝器可以防止此類錯誤。 建議用於所有多線程用法。 此類沒有任何重要的開銷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.