如何在c中实现webdriver的线程安全

本文关键字:webdriver 线程 安全 实现 | 更新日期: 2023-09-27 18:00:08

我在谷歌上搜索过,但没有找到解决方案。有人能帮我吗?因为我能在java中找到解决方案,但不能在C#中找到。

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

如何在c中实现webdriver的线程安全

使用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());

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

参考