一尘不染

Selenium WebDriver线程安全吗?

selenium

更具体地说,在单个WebDriver / WebElement上同时执行多个操作是否安全?即像这样的东西

WebDriver driver; //driver initialized somehow
final WebElement elem = driver.findElement(By.cssSelector("#elementID"));

//simplified for example, but in real code I'd be storing the results of these calls
new Thread() {
    @Override
    public void run() {
        elem.isDisplayed();
    }
}.run();
new Thread() {
    @Override
    public void run() {
        elem.isEnabled();
    }
}.run();

我自己尝试过,在本​​地交互时没有问题,但是在对远程selenium网格进行相同操作时遇到间歇性问题。

我不确定我遇到的问题是来自Selenium本身,还是Selenium很好,并且这是我使用的托管网格提供程序的局限性。
Selenium线程对于使用Python进行抓取是否安全?提到selenium可能不是线程安全的,但我找不到任何确认。


阅读 503

收藏
2020-06-26

共1个答案

一尘不染

在这里回答这个问题

“ WebDriver不是线程安全的。话虽如此,如果您可以序列化对底层驱动程序实例的访问,则可以在多个线程中共享一个引用。这是不建议的。另一方面,您可以/
can /实例化一个WebDriver每个线程的实例。”

2020-06-26