概述:Webdrive利用浏览器原生的API,封装成一套更加面向对象的Selenium WebDriver API,直接操作浏览器页面里的元素,
甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)
要通过selenium实现自动化测试,主要是需要三种东西:测试需要用的代码、webdriver、浏览器
① 代码
selenium支持多种语言(java/c#/python/ruby)。
测试工程师通过编程语言,调用浏览器对应API实现需要的功能。
② webdriver
webdriver,就像是一个媒介。代码驱动webdriver。
上文提过,不同浏览器有不同的webdriver。
例如火狐的geckodriver。
谷歌的 ChromeDriver。
IE的IEDriverServer
③ 浏览器
不同的浏览器对应不同的webdriver。
System.setProperty(“webdriver.chrome.driver”, “src/main/resources/chromedriver.exe”);
WebDriver driver = new ChromeDriver();
driver.get(“https://www.baidu.com/”);
过程1:通过客户端的脚本(WebDriver driver = new ChromeDriver())启动对应的驱动,然后根据驱动启动对应的浏览器作为远程服务器,服务器解析客户端发来的执行脚本请求(driver.get(“https://www.baidu.com/”))并最终返回给客户端(脚本),达到的效果就是代码实现对浏览器的操作
接下来我们一起来看一下,一条Selenium脚本执行时后端都发生了哪些事情:
过程2:对于每一条Selenium脚本,一个HTTP请求会被创建并且发送给Browser Driver
Browser Driver中包含了一个HTTP Server,用来接收这些HTTP请求
HTTP Server接收到请求后根据请求来具体操控对应的Browser
Browser执行具体的操作步骤
Browser将步骤执行结果返回给HTTP Server
HTTP Server又将结果返回给Selenium的脚本,如果是错误的HTTP代码我们就会在控制台看到对应的报错信息