Selenium 框架原理

图片来自转载

蓝色的图Selenium Language Binding就是我们平时使用的编码语言,包括java、python、C#等。可以看到这些语言并没有直接与Browser Drivers进行通信,而是通过了JSON WireProtocol,这就是webdriver协议 ,详情请参考https://www.w3.org/TR/webdriver/ 。
简单的说他定义了一套接口规范,以我们最熟悉的点击操作为例,他对应的接口协议是:POST /session/{session id}/element/{element id}/click
这样以来,无论我们编码使用python代码来执行点击操作:
driver.find_element_by_id("").click()
还是以java代码执行点击操作:
driver.findElement(By.id("")).click();
都会通过selenium客户端的程序将click操作转化成对应的webdriver协议。这样对于Browser Drivers来说只需要解析具体协议,而无需关注客户端使用的是哪种代码了,这就是selenium支持多种语言的原理。
在Browser Drivers中可以看到各个浏览器的driver,这里我们以chromedriver为例进行讲解。在代码中直接 new ChromeDriver() 将会启动一个 ChromeDriver进程,ChromeDriver是一个独立的服务,它是 google为网站开发人员提供的自动化测试接口,它是 selenium 和chrome浏览器进行通信的桥梁。chromeDriver解析webdriver协议,然后根据解析结果,调用与之对应的Remote Debugging协议来操控chrome浏览器,它可以和浏览器内核进行交互进而操控浏览器,以上就是selenium操控chrome浏览器的原理。
以此类推,大家就会了解为什么使用selenium2和3操控不同的浏览器,需要先下载与其对应的浏览器driver了。(转载链接:https://www.jianshu.com/p/3fedd8321c75)

Selenium 环境安装
1.selenium 是第三方库,如果自动化框架是python写的(暂时以python为例),那么可以用pip 安装selenium

pip 

2.安装webdriver驱动

上网找各个浏览器对应版本的webdriver驱动,下载安装,添加到环境变量中。
IE浏览器驱动_______下载地址:http://docs.seleniumhq.org/download/
Firfox浏览器驱动____下载地址:https://github.com/mozilla/geckodriver/releases
Chrome浏览器驱动__下载地址:http://chromedriver.storage.googleapis.com/index.html
Edge浏览器驱动____下载地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

c# selenium chrome 文件下载_Selenium 框架原理以及环境安装相关推荐

  1. c# selenium chrome 文件下载_使用selenium从网站下载文件

    from selenium import webdriver from time import sleep import datetime import os import shutil import ...

  2. python如何调用谷歌搜图api_python爬虫——selenium+chrome使用代理

    原标题:python爬虫--selenium+chrome使用代理 搭建开发环境: selenium库 chrome webdirver 谷歌浏览器 >=7.9 PS:安装了的同学可以跳过了接着 ...

  3. Python selenium chrome 环境配置

    Python selenium chrome 环境配置一.参考文章:1. 记录一下python easy_install和pip安装地址和方法http://heipark.iteye.com/blog ...

  4. Java+Selenium+Chrome、Firefox自动化测试环境搭建

    一.环境: 软件:idea+java+maven selenium版本:3.14.0 java版本:jdk1.8 chrome版本:80.0.3987.122 chromedriver版本:80.0. ...

  5. chrome java mac下载_Mac上Java+selenium+Chrome环境配置

    前言 本人之前在window下使用Java+selenium+Firefox进行UI测试,由于window本子集显烧了更换了MacBook Pro,所以开始研究如何在Mac环境下进行UI自动化测试.但 ...

  6. Linux服务器上搭建Python+Selenium+Chrome的运行环境(静默模式、无图形)

    本文是<统计CSDN博客的访问量>的部署篇,为了持续统计CSDN的访问量.并进行分析,因此需要在Linux上搭建Selenium + Chrome driver的运行环境 安装Seleni ...

  7. python selenium环境安装及配置_selenium环境配置

    一. 安装步骤 无网安装 前提:机子已安装 Firefox24.0 版本,若没有安装,请先安装 Firefox 浏览器 24.0 版本 1 . python-2.7.6.msi 安装程序包,双击运行安 ...

  8. python 批量下载 代码_Python + Selenium +Chrome 批量下载网页代码修改

    Python + Selenium +Chrome 批量下载网页代码修改 主要修改以下代码可以调用 本地的 user-agent.txt 和 cookie.txt 来达到在登陆状态下 批量打开并下载网 ...

  9. linux配置selenium路径,Linux配置Selenium+Chrome+Python

    ---恢复内容开始--- 最近一个月没有更新博客了.最近都在复习LINUX与PYTHON知识.决定以后在LINUX环境下学习新知识. 包括后期的框架学习与平台知识方面. 直接记录今天下午的学习成果. ...

最新文章

  1. Jupyter notebook与Spyder集成
  2. java ui设计用什么_UI设计是什么?UI怎么设计?
  3. h5如何动态获取键盘高度_动态获取键盘高度
  4. 火爆数据圈的数据分析工具,快速上手动态报表就是这么简单
  5. spring boot +spring security + jwt 实现认证模块
  6. 第 0 章 Readme
  7. 计算机网络——网络与互联网
  8. 上海二手房价数据分析
  9. 全面解析用友网络四位一体数字营销
  10. Android进程管理详解
  11. tomcat访问localhost:8080不能显示tom猫页面的问题
  12. 搭建内网穿透工具-ngrok
  13. 输入一段英文字符,统计每个小写字母的出现次数
  14. python中turtle画笑脸_如何用python画笑脸
  15. 论文发表投稿流程的说明
  16. odoo用户使用——采购
  17. python怎样画动态文字_Python之pygame学习绘制文字制作滚动文字
  18. 紧急迫降华盛顿——UA897空中事故亲历
  19. 欧拉定理与费马小定理的证明过程
  20. 昆仑通态触摸屏通讯6台abb变频器

热门文章

  1. WinXP下变量方式表达对应路径说明
  2. 配置设备作为DHCP 服务器(基于接口地址池)
  3. Vue项目 报错TypeError [ERR INVALID ARG TYPE]: The “path“ argument must be of type string
  4. 在阿里云服务器Windows Server 2012r IIS 上部署.NET网站
  5. LeetCode题库整理【Java】—— 2 两数相加
  6. 基于python的图书管理系统测试步骤_Django admin实现图书管理系统菜鸟级教程完整实例...
  7. oracle客户端三种连接,客户端连接ORACLE的几种方法
  8. vsftpd设置被动模式_(1)vsftpd主、被动模式iptables配置方法
  9. 机器人搏击大赛冠军_机器人的江湖 谁主沉浮——2017格斗机器人大赛侧记
  10. indesign照片放入太大_猪肚鸡做法复杂,量太大,那来个简易版,用上大厨教的妙招更香了...