什么主题的网站容易做点,备案网站的黑名单,厦门公司网页制作,网站建设算不算固定资产一、什么是WebDriver
WebDriver提供了另外一种方式与浏览器进行交互。那就是利用浏览器原生的API#xff0c;封装成一套更加面向对象的Selenium WebDriver API#xff0c;直接操作浏览器页面里的元素#xff0c;甚至操作浏览器本身#xff08;截屏#xff0c;窗口大小封装成一套更加面向对象的Selenium WebDriver API直接操作浏览器页面里的元素甚至操作浏览器本身截屏窗口大小启动关闭安装插件配置证书之类的。由于使用的是浏览器的原生API速度大大提高而且调用的稳定性交给了浏览器厂商本身显然是更加科学。然而带来的一些副作用就是不同的浏览器厂商对Web元素的操作和呈现存在不同程度的差异这就要求Selenium WebDriver要分浏览器厂商的不同提供不同的实现例如Chrome有专门的ChromeDriverFirefox有FirefoxDriver等等。
WebDriver Wire协议是通用的也就是说不管是Firefox Driver还是ChromeDriver启动之后都会在某一个端口启动基于这套协议的Web Service。例如ChromeDriver初始化成功之后默认会从http://localhost:46350开始而FirefoxDriver从http://localhost:7055开始。后续我们调用WebDriver的任何API都需要借助一个ComandExecutor发送一个命令实际上是一个HTTPrequest给监听端口上的WebService。在我们的HTTPrequest的body中会以WebDriver Wire协议规定的JSON格式的字符串来告诉Selenium我们希望浏览器接下来做什么事情。
在这我也准备了一份软件测试视频教程含接口、自动化、性能等需要的可以直接在下方观看或者直接关注VX公众号互联网杂货铺免费领取
软件测试视频教程观看处 软件测试工程师大忌盲目自学软件测试真的会毁终生能救一个是一个...... 二、通信原理
最少情况WebDriver通过一个驱动程序与浏览器对话。通信有两种方式:WebDriver通过驱动程序向浏览器传递命令然后通过相同的路径接收信息。 驱动程序在与浏览器相同的系统上运行。这可能与执行测试本身的系统相同也可能不同。
上面这个简单的例子就是直接通信。与浏览器的通信也可以是通过Selenium服务器或RemoteWebDriver进行的远程通信。RemoteWebDriver与驱动程序和浏览器运行在同一个系统上。 远程通信也可以使用Selenium Server或Selenium Grid进行这两者依次与主机系统上的驱动程序进行通信。 WebDriver只是与浏览器通信测试框架(如JUnit、Pytest)负责运行和执行WebDriver以及测试中相关步骤。 三、具体过程
1.实例化WebDriver在目标浏览器里启动一整套WebService。这套WebService使用了Selenium自己设计定义的协议名字叫做The WebDriver Wire Protocol。这套协议非常之强大几乎可以操作浏览器做任何事情包括打开、关闭、最大化、最小化、元素定位、元素点击、文件上传等等。
2.发送请求时用WebDriver的HttpCommandExecutor类将命令转换为URL作为value命令作为key一起存入map作为request同时会在request的body中存放相应的ByXpath、id、name。实际发送的URL都是相对路径后缀多以/session/:sessionId开头这也意味着WebDriver每次启动浏览器都会分配一个独立的sessionId多线程并行的时候彼此之间不会有冲突和干扰。比如我们常用到的find_element_by_class_name这个接口会转化为/session/:sessionId/element这个url然后在发出Http Request Body内再附上具体的参数比如classname的值。比如我们要访问某一个网站请求地址为
http://localhost:46350/wd/hub/session/sessionId/url请求json内容{url:http://www.qq.com}。比如查找一个classname为test的元素请求地址后缀为/session/sessionId/elementjson内容{using:class_name,value:test}。
3.收到并执行了这个操作之后也会回复一个HttpResponse。内容也是Json会返回找到的element的各种细节比如text、CSSselector、tagname、classname等等。比如 {sessionId:XXXXX,status:0,state:success,value:{ELEMENT:2},class:XXX,hCode:XXX}
四、总结
PS这套软件测试的自学教程合集对于在测试行业发展的小伙伴们来说应该会很有帮助。全套内容已经打包到网盘内容总量接近500个G。如需要软件测试学习资料关注公众号互联网杂货铺后台回复1整理不易给个关注点个赞吧谢谢各位大佬 这些资料对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你凡事要趁早特别是技术行业一定要提升技术功底。