这三者之间的关联, 好复杂.
来, 故事开始了.
一开始, 人们是用人工进行网页测试的, 就是招一配人在那里对着网页点来点去, 点到网页挂掉就找到bug.
接下来, 人们为是省事, 就试试自动化的搞法.
怎么搞呢, selenium就自己开发了一个server, 这个server一启动, 就黑进浏览器, 注入自己的javascript, 通过这种方法来执行命令及反馈回server来通信.
这就是Selenium Remote Control
但是这样毕竟不是正规方法, 要黑人家的浏览器啊, 有点法规问题, 但用的人这么多. 于是, 他们和Chrome合作, Chrome给他搞了个chromeDriver.exe, 他们说你们可以通过这个中间软件, 通过一个叫 JsonWireProtocol 的协议来通信, 这样, chromeDriver.exe搞chrome是自己搞自己, 就没什么法律问题了, 而且特地搞的, 速度肯定比黑进去快.
接下来, Firefox等各大浏览器也推出来相应的driver.exe.
这就是WebDriver
现在, 用WebDriver跑是要开启整个浏览器的, 也是是命令行肯定不行. 但是啊, 自动化测试, 要界面干什么, 还超级占内存, 又慢. 于是Google说我们做个Headless Chrome, 名字么, 起得有点哪个什么, 中文姑且叫无界面Chrome好了. 它说, 它们做的其实就是将浏览器按F12出来的那个工具的通信协议开放给大家用, 所以那个devTool做得到的, 你也做得到, 几乎就是叫Chrome干什么它就干什么了, 所以那个协议也就叫devTool. 其实个人认为这些人起名字太没心眼了, 明明是个json协议却叫devTool, 不就是摆明了要误导人么.
好了, 现在因为这个headless模式刚出来没多久, 而且人家Google的员工摆明了不给机会selenium扬名立万, chrome自己抢先开发了一套javascript的库给大家用. 但是Selenium用的人多, 所以他们还是教了你用Selenium的方法的.