如果想从头学起selenium,可以去看看这个系列的文章哦!

https://www.cnblogs.com/miki-peng/category/1942527.html

简单介绍

selenium

​ selenium是一个用于测试web网页的自动化测试工具,它直接运行在浏览器中,模拟用户的操作。

  • 支持多浏览器:ie、Firefox、Chrome、edge、Safari等
  • 跨平台:windows、Linux、mac等
  • 支持多语言:python、java、ruby、c#等

webdriver

​ webdriver则是selenium里最重要的东西,它是按照client/server模式设计的,通过驱动程序与浏览器进行通信。而selenium代码与浏览器驱动程序之间是通过http协议进行数据交互的,这种方式,不在乎客户端是什么样的形式,只要数据的格式和协议是服务端能够解析的就可以,因此它可以跨平台,支持多语言多浏览器。

  • client:编程语言客户端,比如说python selenium客户端
  • server:浏览器驱动程序,用来接收客户端的请求并驱动浏览器执行操作然后返回结果。

通信步骤

  • 1. webdriver启动浏览器驱动程序,并设置侦听端口号
  • 2. webdriver客户端与浏览器端建立连接
  • 3. 连接成功之后,所有的操作(比如查找元素、点击等)都是客户端通过commandExecuter发送http请求到服务端,服务端根据收到的请求做相应的操作并返回结果

三大浏览器及驱动:

​ 每一个浏览器匹配一个驱动,驱动版本还要匹配对应的浏览器的版本,否则运行可能会报错不兼容等问题。

  • Chrome:chromedriver
  • IE: ieserverdriver
  • Firefox:geckodriver

环境安装

1.安装selenium

​ 命令行使用以下命令直接安装:pip install -U selenium

2.安装浏览器及其驱动

​ 这里以Chrome为例,驱动下载地址 http://npm.taobao.org/mirrors/chromedriver/ ,驱动目录下有一个notes.txt文件,里面记录了该驱动支持的浏览器版本,根据提示安装对应的浏览器版本。浏览器驱动是.exe文件,下载后直接放在python的根目录下即可。

启动浏览器

​ 使用webdriver前,需要先导入包from selenium import webdriver,每次打开浏览器时,执行完毕要记得关闭浏览器,使用driver.quit()关闭。

from selenium import webdriver
import time # 实例化chrome类,启动了Chromedriver,并与Chromedriver开启了会话
# ip + 端口 -- 启动
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")
time.sleep(5)
# 关闭浏览器
drver.quit()

【python+selenium的web自动化】- Selenium WebDriver原理及安装的更多相关文章

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

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

  2. 【Selenium02篇】python+selenium实现Web自动化:鼠标操作和键盘操作!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第二篇博 ...

  3. 【Selenium05篇】python+selenium实现Web自动化:读取ini配置文件,元素封装,代码封装,异常处理,兼容多浏览器执行

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第五篇博 ...

  4. 【Selenium03篇】python+selenium实现Web自动化:元素三类等待,多窗口切换,警告框处理,下拉框选择

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第三篇博 ...

  5. 【Selenium04篇】python+selenium实现Web自动化:文件上传,Cookie操作,调用 JavaScript,窗口截图

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第四篇博 ...

  6. 【Selenium07篇】python+selenium实现Web自动化:PO模型,PageObject模式!

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第七篇博 ...

  7. 【Selenium06篇】python+selenium实现Web自动化:日志处理

    一.前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新! 这是python+selenium实现Web自动化第六篇博 ...

  8. 《Selenium+Pytest Web自动化实战》随到随学在线课程,零基础也能学!

    课程介绍 课程主题:<Selenium+Pytest Web自动化实战> 适合人群: 1.功能测试转型自动化测试 2.web自动化零基础的小白 3.对python 和 selenium 有 ...

  9. 基于Selenium的Web自动化框架增强篇

    在写完上一篇“基于Selenium的Web自动化框架”(http://www.cnblogs.com/AlwinXu/p/5836709.html)之后一直没有时间重新审视该框架,正好趁着给同事分享的 ...

  10. Selenium Web 自动化 - Selenium(Java)环境搭建

    Selenium Web 自动化 - Selenium(Java)环境搭建 2016-07-29 1 下载JDK JDK下载地址:http://www.oracle.com/technetwork/j ...

随机推荐

  1. hdu2852 KiKi's K-Number

    Problem Description For the k-th number, we all should be very familiar with it. Of course,to kiki i ...

  2. Long Long Message POJ - 2774 后缀数组

    The little cat is majoring in physics in the capital of Byterland. A piece of sad news comes to him ...

  3. 5.PowerShell DSC核心概念之资源

    什么是资源? 资源为 DSC 配置提供构建基块. 资源公开可配置的属性,并包含本地配置管理器 (LCM) 调用以"使其如此"的 PowerShell 脚本函数. 系统内置资源 可在 ...

  4. Leetcode(104)-二叉树的最大深度

    给定一个二叉树,找出其最大深度. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数. 说明: 叶子节点是指没有子节点的节点. 示例:给定二叉树 [3,9,20,null,null,15,7], ...

  5. 如何在ASP.NET Core 中使用IHttpClientFactory

    利用IHttpClientFactory可以无缝创建HttpClient实例,避免手动管理它们的生命周期. 当使用ASP.Net Core开发应用程序时,可能经常需要通过HttpClient调用Web ...

  6. Linux Bash Script loop

    Linux Bash Script loop shell 编程之流程控制 for 循环.while 循环和 until 循环 for var in item1 item2 ... itemN do c ...

  7. Python Web Framework All In One

    Python Web Framework All In One Django and Flask are the top Python web frameworks so far. Django ht ...

  8. base 64 bug & encodeURIComponent

    base64 bug & encodeURIComponent window.btoa("jëh²H¶�%28"); // "autoskiptoclMjiu&q ...

  9. Azure & Serverless

    Azure & Serverless https://azure.microsoft.com/en-us/get-started/webinar/on-demand/ blob:https:/ ...

  10. macOS open url from terminal

    macOS open url from terminal open URL && start terminal bash open url in chrome open chrome ...