关于JavaScript版Selenium是否存在类似WebDriverManager的驱动管理工具的咨询
嘿,我太懂你这种“找了半天以为自己漏了什么”的感受了!刚用JS写Selenium测试的时候,我也对着Java里的WebDriverManager流口水,到处找有没有直接对应的工具——其实JS生态里不是没有,只是解决方案的形式和Java不太一样,都是以npm包的形式存在的,给你列几个常用的:
WebDriverIO配套的
@wdio/selenium-standalone-service
如果你用WebDriverIO框架写测试,这个服务简直是懒人福音。它会自动检测你本地的浏览器版本,下载匹配的ChromeDriver、GeckoDriver甚至EdgeDriver,还能帮你启动和管理驱动服务。只要在wdio.conf.js里把它加入services数组,再装个依赖npm install @wdio/selenium-standalone-service --save-dev,跑测试前完全不用手动管驱动的事儿。单浏览器专属的驱动包
如果你只针对某一款浏览器测试,直接装对应npm包就行,它们都会自动适配本地浏览器版本:- Chrome:装
chromedriver包,安装后代码里直接引入,它会自动下载匹配你本地Chrome的驱动版本,不用手动指定路径。 - Firefox:对应的是
geckodriver包,用法和chromedriver完全一致。 - Edge:可以用
edgedriver包,同样自动适配本地Edge版本。
- Chrome:装
JS版
webdriver-manager
有个同名的npm包(和Java版不是同一个项目,但功能类似),它能帮你管理多种浏览器驱动。安装后可以通过命令行执行webdriver-manager update来更新所有驱动,或者webdriver-manager start启动驱动服务,也能在代码里调用它的API来自动化这个过程。
另外提一句,现在Selenium 4的JS绑定其实也内置了部分自动驱动检测的能力,但生态里的这些npm包还是更成熟好用。所以真不是你漏了什么,只是JS里的驱动管理工具是拆分成不同包的,选一个适合你测试框架的就行~
备注:内容来源于stack exchange,提问作者Akzhol

