原理部分总是很迷幻,需要多结合实际使用来理解。
Selenium:
client到浏览器的通信有以下:
- client:python/java脚本
- webdriver协议:本质上是一种http协议,但是有自己的规则,即基于json-wire procotol的webdriver协议
- webdriver(浏览器驱动):chromedriver...,即测试中用到的各种浏览器驱动
- 浏览器:chrome...
- python/java脚本实现了webdriver协议,并向webdriver中的web service发送http请求
- webdriver中的web service收到请求后,将根据请求去生成对应的js脚本(浏览器不同,js脚本自然也不同)
- 由js脚本去驱动浏览器,执行各种操作,并将结果返回给webdriver中的web service
- webdriver中的web sevrice将结果以http响应的形式返回给用户,注意这里webdriver细化了状态码:7:NoSuchElement, 11:ElementNotVisible, 200: Everything OK
【更新】:转载一篇写的不错的文章:https://www.cnblogs.com/linuxchao/p/linux-selenium-webdriver.html
总结selenium的操作原理:
- 初始化一个service对