在说原理之前我想说下我所理解的selenium:

(1)、支持多语言,多平台,多浏览器

(2)、它是一个工具包

(3)、提供所有的网页操作api,是一个功能库

通过selenium来实现web自动化,其中的原理涉及到三个最主要的东西:代码、webdriver、浏览器

1、代码:他就是我们写的自动化脚本,支持多语言,有python,java,c#,php,js等,测试工程师通过编程语言,调用浏览器对应API实现需要的功能。

2、webdriver:webdriver,就像是一个媒介。代码驱动webdriver。不同浏览器有不同的webdriver。例如火狐的FirefoxDriver,谷歌的 ChromeDriver。

3、浏览器:就是我们平时所用到的不同的浏览器,谷歌,火狐,IE,不同版本的浏览器对应不同版本的webdriver

上面这张图简单的描述了web自动化实现的一个过程:(以下说明以chromdriver为例)

a、启动chromdriver
b、python代码要与chromdriver程序进行连接(http通信)
c、chromdriver收到请求后,驱动浏览器执行
d、浏览器执行完成后返回执行结果给chromdriver
e、chromdriver把执行结果告诉python代码

web自动化原理的更多相关文章

  1. Selenium Web自动化 原理

    文章转自 白月黑羽教Python 原理 说到web应用自动化测试,第一选择就是 Selenium 框架. Selenium 是一个 Web 应用的自动化框架. 通过它,我们可以写出自动化程序像人一样( ...

  2. web自动化原理揭秘

    做过两年自动化测试的小伙伴说web自动化测试真的不难,无非就是一些浏览器操作,页面元素操作,常规的情况很容易处理,再学一学特殊元素的处理,基本就能应付项目的测试了. 这个话倒没错,但是真正要学好自动化 ...

  3. 【Selenium01篇】python+selenium实现Web自动化:搭建环境,Selenium原理,定位元素以及浏览器常规操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 二.话不多说,直接开干,开始搭建自动化测试环境 这里以前在 ...

  4. Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」

    1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...

  5. web自动化工具-livereload

    web自动化工具-livereload livereload是一个很神奇的工具,主要解放了F5键,监听文件变动,整个页面自动刷新.可搭载gulp等构建工具使用.和liveStyle 针对样式文件相比, ...

  6. Web自动化之Headless Chrome测试框架集成

    使用Selenium操作headless chrome 推荐 简介 WebDriver是一个W3C标准, 定义了一套检查和控制用户代理(比如浏览器)的远程控制接口,各大主流浏览器来实现这些接口以便调用 ...

  7. Selenium Web 自动化

    1 Selenium Web 自动化 - Selenium(Java)环境搭建 2 Selenium Web 自动化 - 如何找到元素 3 Selenium Web 自动化 - Selenium常用A ...

  8. Airtest之web自动化(一)

    Airtest之web自动化(一) [此文档有许多涉及到gif动图的地方,请全屏观看]   了解Airtest: 简介: Airtest是由网易团队开发的一款自动化框架,前期运用与游戏测试(通过截图识 ...

  9. selenium的web自动化实战

    selenium自动化原理: 1.通过各种语言(python,java,ruby等)调用接口库 2.通过浏览器驱动(web driver)来驱动浏览器 利用Python自动化的环境安装: 1.pyth ...

随机推荐

  1. tmux的基本用法

    tmux的基本用法: tmux #启动 C-b d #挂起,效果如同screen中的C-a d tmux attach #恢复会话,效果如同screen中的screen -r 更多功能(需要在tmux ...

  2. 乐观锁(Optimistic Lock)

    乐观锁(非阻塞)指不通过锁表来解决并发问题,一般情况下表数据都会加入一个version字段,对该字段进行比较更新来保证数据的一致性. 这里写了个demo,应该可以说明乐观锁的问题. public cl ...

  3. smtp 邮件传输协议 qq版实现

    qq: telnet smtp.qq.com 587 (qq邮箱说明:http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28& ...

  4. linux基本指令梳理

  5. springdatajpa 认识以及使用方式

    1.spingdatajpa是什么? Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套JPA应用框架(即上述的:JPA的实现产品),可使开发者用极简 ...

  6. spring和hibernate的集成

    集成关系图: 项目目录树: User.java package com.donghai.bean; public class User { private String id; private Str ...

  7. python反转链表和成对反转

    https://www.cnblogs.com/tianqizhi/p/9673894.html https://blog.csdn.net/weixin_34168700/article/detai ...

  8. 应对百万访问量的epoll模式

    写在前面 select/poll与epoll select/poll模型工作机理 select/poll模型的局限 epoll模型工作机理 epoll的局限 golang中的epoll golang源 ...

  9. Android蓝牙----打开,关闭操作

    ① 我们先在AndroidManifest里面增加我们的Bluetooth权限 <uses-permission android:name="android.permission.BL ...

  10. SpringMVC之springmvc原始api,请求中文乱码问题

    先搞一波效果图  1.Controller package com.tz.controller; import javax.servlet.http.HttpServlet; import javax ...