You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenide中两种获取WebDriver实例方式的差异解析

Selenide中两种获取WebDriver实例方式的区别

核心差异

  • Selenide.webdriver()
    该方法返回的是SelenideDriver的webdriver()执行结果,本质是Selenide封装的WebDriverWrapper对象。这个包装类内部持有原生WebDriver实例,同时集成了Selenide的自动等待、失败截图、操作重试等核心特性。若要获取原生WebDriver,可通过它的getWebDriver()方法,但直接使用wrapper能保留Selenide的所有增强能力。

  • WebDriverRunner.getWebDriver()
    此方法直接返回原生WebDriver实例,完全绕过Selenide的封装逻辑。使用这个实例调用原生WebDriver API时,Selenide的自动等待、异常处理等机制不会生效,相当于脱离了Selenide的管控。

适用场景

  • 若需要在操作浏览器时保留Selenide的特性,优先选择Selenide.webdriver();临时需要调用原生API时,可通过Selenide.webdriver().getWebDriver()获取原生实例,操作完成后仍回归Selenide API即可。
  • 若要执行原生WebDriver的底层操作,或集成依赖原生WebDriver的第三方工具,可直接使用WebDriverRunner.getWebDriver()。

底层关联

Selenide.webdriver()最终也是从WebDriverRunner中获取驱动实例,只是多了一层Selenide的封装增强,二者的原生驱动实例是同一个。

内容的提问来源于stack exchange,提问作者Artsiom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:30:55