如何在c#中制作webdriver线程安全?

我在谷歌搜索过但没有找到解决方案。 有人可以帮助我,因为我能够在java中找到解决方案而不是在C#中找到解决方案。

private static final ThreadLocal  webDriver = new ThreadLocal  () { @Override protected WebDriver initialValue() { return BrowserType.getBrowserType().getInstance(); } }; 

使用C# ThreadLocal ,这样的事情?

 public static ThreadLocal webDriver = new ThreadLocal(() => { return new InternetExplorerDriver(); }); 

希望你有正确的import:

 using OpenQA.Selenium; using OpenQA.Selenium.IE; 

注意,除非需要,否则我几乎不用C#编写代码。

绝不保证Selenium线程安全,严格来说它不是线程安全的。 请参考这个

Java解决方案:

multithreading客户端代码应该使用它来声明它以线程安全的方式访问webdriver。 包装WebDriver实例如下:

 WebDriver driver = ThreadGuard.protect(new FirefoxDriver()); 

与错误的客户端线程相关的线程问题可能具有神秘且难以诊断的错误。 使用此包装可以防止出现此类错误。 建议用于所有multithreading用法。 这个类没有任何重要的开销。

参考