簡體   English   中英

如何在C#中使WebDriver線程安全?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM