背景
在使用Selenium WebDriver实现web自动化测试的过程中,有一个场景:需要在一个自动化用例中,操作其他用例已经打开的浏览器即接着上一个用例的操作,继续执行。
简述原理
Selenium Webdriver是使用server-client结构实现的,server端使用浏览器驱动程序来启动浏览器并且创建一个命令执行器,client端实现一个http的客户端与命令执行器通信,将按照selenium定义的格式的http请求和参数发送给命令执行器,命令执行器识别这些命令后对浏览器进行操作,而server的命令执行器和client之间的通信凭证就是sessionid。
实现
使用python
from selenium import webdriver
driver = webdriver.Chrome()
print driver.command_exector._url
print driver.session_id
执行后,输出
http://127.0.0.1:23417 // 命令执行器的url
fe6fda53626f08b1cde42e76f05f47 // session id
此时,可以看到已经打开了一个浏览器,且我们的程序已经执行结束了。
接下来,在这个已经打开的浏览器里,打开 百度 的首页,使用postman 发送post请求
url: http://127.0.0.1:23417/session/fe6fda53626f08b1cde42e76f05f47/url
body json/application
{
"url":"https://www.baidu.com"</