這三者之間的關(guān)聯(lián), 好復雜.
來, 故事開始了.
一開始, 人們是用人工進行網(wǎng)頁測試的, 就是招一配人在那里對著網(wǎng)頁點來點去, 點到網(wǎng)頁掛掉就找到bug.
接下來, 人們?yōu)槭鞘∈? 就試試自動化的搞法.
怎么搞呢, selenium就自己開發(fā)了一個server, 這個server一啟動, 就黑進瀏覽器, 注入自己的javascript, 通過這種方法來執(zhí)行命令及反饋回server來通信.
這就是Selenium Remote Control
但是這樣畢竟不是正規(guī)方法, 要黑人家的瀏覽器啊, 有點法規(guī)問題, 但用的人這么多. 于是, 他們和Chrome合作, Chrome給他搞了個chromeDriver.exe, 他們說你們可以通過這個中間軟件, 通過一個叫 JsonWireProtocol 的協(xié)議來通信, 這樣, chromeDriver.exe搞chrome是自己搞自己, 就沒什么法律問題了, 而且特地搞的, 速度肯定比黑進去快.
接下來, Firefox等各大瀏覽器也推出來相應的driver.exe.
這就是WebDriver
現(xiàn)在, 用WebDriver跑是要開啟整個瀏覽器的, 也是是命令行肯定不行. 但是啊, 自動化測試, 要界面干什么, 還超級占內(nèi)存, 又慢. 于是Google說我們做個Headless Chrome, 名字么, 起得有點哪個什么, 中文姑且叫無界面Chrome好了. 它說, 它們做的其實就是將瀏覽器按F12出來的那個工具的通信協(xié)議開放給大家用, 所以那個devTool做得到的, 你也做得到, 幾乎就是叫Chrome干什么它就干什么了, 所以那個協(xié)議也就叫devTool. 其實個人認為這些人起名字太沒心眼了, 明明是個json協(xié)議卻叫devTool, 不就是擺明了要誤導人么.
好了, 現(xiàn)在因為這個headless模式剛出來沒多久, 而且人家Google的員工擺明了不給機會selenium揚名立萬, chrome自己搶先開發(fā)了一套javascript的庫給大家用. 但是Selenium用的人多, 所以他們還是教了你用Selenium的方法的.