zoukankan      html  css  js  c++  java
  • Selenium(一):原理与安装、简单的使用

    1. selenium原理

    1.1 selenium介绍

    Selenium是一个Web应用的自动化框架。

    通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面。 比如点击界面按钮,在文本框中输入文字 等操作。

    而且还能从web界面获取信息。 比如获取12306票务信息,招聘网站职位信息,财经网站股票价格信息 等等,然后用程序进行分析处理。

    Selenium 的自动化原理是这样的:

    1.2 selenium客户端库

    我们写的自动化程序需要使用客户端库。

    我们程序的自动化请求都是通过这个库里面的编程接口发送给浏览器。

    比如,我们要模拟用户点击界面按钮, 自动化程序里面就应该调用客户端库相应的函数,就会发送点击元素的请求给下方的浏览器驱动。然后,浏览器驱动再转发这个请求给浏览器。

    这个自动化程序发送给浏览器驱动的请求是HTTP请求。

    客户端库从哪里来的?是Selenium组织提供的。

    Selenium组织提供了多种 编程语言的Selenium客户端库,包括 java,python,js,ruby等,方便不同编程语言的开发者使用。

    我们只需要安装好客户端库,调用这些库,就可以发出自动化请求给浏览器咯。

    1.3 浏览器驱动

    浏览器驱动也是一个独立的程序,是由浏览器厂商提供的,不同的浏览器需要不同的浏览器驱动。 比如Chrome浏览器和火狐浏览器有各自不同的驱动程序。

    浏览器驱动接收到我们的自动化程序发送的界面操作请求后,会转发请求给浏览器,让浏览器去执行对应的自动化操作。

    浏览器执行完操作后,会将自动化的结果返回给浏览器驱动,浏览器驱动再通过HTTP响应的消息返回给我们的自动化程序的客户端库。

    自动化程序的客户端库接收到响应后,将结果转化为数据对象返回给我们的代码。

    我们的程序就可以知道这次自动化操作的结果如何了。

    1.4 总结

    1. 自动化程序调用Selenium客户端库函数(比如点击按钮元素)。
    2. 客户端库会发送Selenium命令给浏览器的驱动程序。
    3. 浏览器驱动程序接收到命令后,驱动浏览器去执行命令。
    4. 浏览器执行命令。
    5. 浏览器驱动程序获取命令执行的结果,返回给我们自动化程序。
    6. 自动化程序对返回结果进行处理。

    2. 安装selenium环境

    Selenium环境的安装主要就是安装两样东西:客户端库和浏览器驱动。

    2.1 安装客户端库

    不同的编程语言选择不同的Selenium客户端库。 

    对应我们Python语言来说,Selenium客户端库的安装非常简单,用pip命令即可。

    打开命令行程序,运行如下命令

    1. pip install selenium

    2.2 安装浏览器驱动

    浏览器驱动是和浏览器对应的。不同的浏览器需要选择不同的浏览器驱动。

    目前主流的浏览器中,Chrome 浏览器对Selenium自动化的支持更加成熟一些。

    我们就以Chrome浏览器为例。

    建议安装最新版本的Chrome浏览器,点击这里下载

    访问Chrome浏览器的驱动下载页面,点击这里下载

    注意浏览器驱动必须要和浏览器版本匹配,下图红圈里面的版本号就是和浏览器版本号对应的 。

    比如:当前Chrome浏览器版本是78, 就需要下载78开头的目录里面的驱动程序 。

    打开目录,里面有3个zip包,分别对应Linux、Mac、Windows平台。

    如果我们是Windows平台的电脑,就下载 chromedriver_win32.zip

    这是个zip包,下载下来之后,解压里面的程序文件 chromedriver.exe 到某个目录下面,注意这个目录的路径最好是没有中文名和空格的。

    比如,解压到E:webdrivers目录下面。

    也就是保证我们的Chrome浏览器驱动路径为E:webdriverschromedriver.exe

    基于selenium的web自动化环境搭建就是这些,比较简单。 

    3. 简单的使用 

    3.1 打开浏览器,进入指定网站

    1. from selenium import webdriver
    2.  
    3. # 创建 WebDriver 对象,指明使用chrome浏览器驱动
    4. wd = webdriver.Chrome(r'E:webdriverschromedriver.exe')
    5.  
    6. # 调用WebDriver 对象的get方法 可以让浏览器打开指定网址
    7. wd.get('https://www.baidu.com')

    注意,等号右边返回的是WebDriver类型的对象,我们可以通过这个对象来操控浏览器,比如打开网址、选择界面元素等。

    而下面这行代码,就是使用WebDriver的get方法打开网址百度 

    1. wd.get('https://www.baidu.com')

    执行上面这行代码时,自动化程序就发起了打开百度网址的请求消息,通过浏览器驱动,给Chrome浏览器。

    Chome浏览器接收到该请求后,就会打开百度网址,通过浏览器驱动,告诉自动化程序打开成功。

    3.2 关闭浏览器

    执行完自动化代码,如果想关闭浏览器窗口可以调用WebDriver对象的 quit 方法,像这样 wd.quit() 。

    3.3 浏览器驱动目录加入环境变量Path 

    前面,我们的代码创建 WebDriver对象时,需要指定浏览器驱动路径,比如 

    1. wd = webdriver.Chrome(r'E:webdriverschromedriver.exe')

    如果,我们把浏览器驱动所在目录加入环境变量 Path,再写代码时,就可以无需指定浏览器驱动路径了,像下面这样。

    1. wd = webdriver.Chrome()

    因为,Selenium会自动在环境变量Path指定的那些目录里查找名为chromedriver.exe的文件。

    一定要注意的是, 加入环境变量 Path 的,不是浏览器驱动全路径,比如E:webdriverschromedriver.exe

    而是浏览器驱动所在目录,比如E:webdrivers

    文章原地址处:https://www.cnblogs.com/liuhui0308/p/11926608.html#4439142

  • 相关阅读:
    Linux的僵尸进程及其解决方法
    描述linux系统从开机到登陆界面的启动过程
    __weak、__strong这样的关键词和weak、strong有哪些区别
    选择器(UIPickerView)
    UITableView 滚动流程性优化
    几种设置UITableView的cell动态高度的方法
    强大的Core Image(教你做自己的美图秀秀))
    iOS UIBezierPath类 介绍
    Quartz 2D编程指南- PDF文档的创建、显示及转换
    Quartz 2D编程指南(4) - 颜色和颜色空间
  • 原文地址:https://www.cnblogs.com/nini0806/p/13650764.html
Copyright © 2011-2022 走看看