- selenium client(python等语言编写的自动化测试脚本)初始化一个service服务,通过Webdriver启动浏览器驱动程序chromedriver.exe
- 通过RemoteWebDriver向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id
- 打开浏览器,绑定特定的端口,把启动后的浏览器作为webdriver的remote server
- 打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过RemoteConnection链接到remote server,然后使用execute方法(send a command to the remote server)调用_request(send an http request to the remote server)
- 浏览器通过请求的内容执行对应动作
- 浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本
sessionid分析:
服务器端需要维护浏览器的Session,客户端首次发送请求的字符串是’/session/
s
e
s
s
i
o
n
I
d
/
u
r
l
′
。服务器端将根据
u
r
l
打开对应的
u
r
l
地址,同时将
sessionId/url'。服务器端将根据url打开对应的url地址,同时将
sessionId/url′。服务器端将根据url打开对应的url地址,同时将sessionId解析成真实的值。然后返回给客户端。以后客户端再向浏览器发送请求时,将会携带session值一起发送。