前言
测试发现,对于极个别的网页,谷歌浏览器可以正常获取到网页元素,使用基于 webdriver
协议的 selenium
工具也可以成功识别。 但是基于 devtools
的 chromedp
工具却不行。可能仅仅是工具的问题。
由此查了下 WebDriver
和 DevTools
的区别.
https://www.wildberries.ru/catalog/72599837/detail.aspx
https://www.wildberries.ru/catalog/97286739/detail.aspx
WebDriver和DevTools
WebDriver
协议和 DevTools
协议之间的主要区别在于,WebDriver 协议需要像浏览器驱动程序这样的中间人(例如: chrome-driver
),它是位于自动化脚本和浏览器之间的服务器,支持浏览器控制,但在 DevTools 协议的情况下自动化脚本可以直接与在 Debug模式下运行的浏览器对话,使 headless 自动化非常简单。
而 Chrome 驱动内部使用 DevTools 协议(protocol)来控制浏览器,所以如果我们使用 WebDriver 协议(protocol),它会反过来使用 Devtools 协议(protocol)来控制浏览器。
如果跨浏览器测试对于新的测试工具来说很重要,那么 DevTools 协议(protocol)现在可能不适合,因为还没有标准,而且大部分都在进行中。否则,DevTools 协议(protocol)将是一个不错的选择,因为它提供了更多控制,例如拦截请求 header 、模拟网络等,并使 headless 自动化方式更容易。
What is the difference between WebDriver and DevTool protocol https://stackoverflow.com/questions/50939116/what-is-the-difference-between-webdriver-and-devtool-protocol