欢迎来到赛兔子家园

Python中selenium简介与安装

目录:

  1. 介绍安装
  2. 基本使用
介绍

Selenium官网:http://selenium-python.readthedocs.io/

Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一,支持跨不同浏览器、平台和编程语言的自动化。

Selenium可以轻松部署在Windows,Linux,Solaris和Macintosh等平台上。此外,它支持IOS(IOS,Windows Mobile和Android)等移动应用程序的OS(操作系统)。

Selenium通过使用特定于每种语言的驱动程序支持各种编程语言。Selenium支持的语言包括C#,Java,Perl,PHP,Python和Ruby。目前,Selenium Web驱动程序最受Python和C#欢迎。

Selenium测试脚可以使用任何支持的编程语言进行编码,并且可以直接在大多数现代Web浏览器中运行。 Selenium支持的浏览器包括Internet Explorer,Mozilla Firefox,Google Chrome和Safari。

Selenium是一个自动化测试工具,爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题。

Selenium本质是通过驱动浏览器,完全模拟浏览器的操作,例如:跳转、输入、点击、下拉等,来拿网页渲染之后的结果,可支持多种浏览器。

具备知识

需要一些html,css 和 JavaScript 和 Python技术。

Selenium WebDriver

Selenium WebDriver(Selenium 2)是Selenium RC的继承者,也是Selenium Suite最重要的组件。 SeleniumWebDriver提供了一个编程接口来创建和执行测试用例。 编写测试脚本是为了识别网页上的Web元素,然后对这些元素执行所需的操作。与Selenium RC相比,Selenium WebDriver执行速度更快,因为它可以直接调用Web浏览器。 另一方面,RC需要RC服务器与Web浏览器进行交互。

因为,WebDriver直接调用不同浏览器的方法,因此每个浏览器都有单独的驱动程序。 一些最广泛使用的Web驱动程序包括:

  • Mozilla Firefox驱动程序(Gecko驱动程序)
  • 谷歌Chrome驱动程序
  • Internet Explorer驱动程序
  • Opera驱动程序
  • Safari驱动程序
  • HTML单元驱动程序(一个特殊的无头驱动程序)

注意:Selenium版本2将Selenium RC和Selenium WebDriver的最佳功能合并到Selenium WebDriver中,最新发布的Selenium 3具有新增功能和功能。

安装和基本使用

想要Python通过selenium操作浏览器搞些事情,就必须有两个前提条件:

  1. 下载selenium模块
  2. 安装selenium的浏览器驱动 webdriver

 selenium模块下载

pip install selenium
pip install -i https://pypi.doubanio.com/simple/ selenium

浏览器驱动下载:

  • 网页浏览器,也就是我们现在经常用到的浏览器,打开浏览器有个可视化的界面供我们操作,常见的有
    • Google
    • Firefox
    • Safari
    • IE/edge
    • Opera
  • 无头浏览器(Headless Browser),无头,这里是说无界面的,这种浏览器的运行是不可见的,selenium中常用的无头浏览器有:
    • PhantomJS无头浏览器
    • Google无头浏览器
    • Firefox无头浏览器

关于无头浏览器:无头浏览器指的是没有图形用户界面的浏览器。无头浏览器没有界面,通过命令行界面使用网络通信来执行。 它们对于测试网页特别有用,因为它们能够像浏览器一样呈现和理解超文本标记语言,包括页面布局、颜色、字体选择以及JavaScript和AJAX的执行等样式元素,这些元素在使用其他测试方法时通常是不可用的。
无头浏览器常用于:

  • Web应用程序中的测试自动化。
  • 拍摄网页截图
  • 对JavaScript库运行自动化测试
  • 收集网站数据
  • 自动化网页交互

使用无头浏览器的优势:

    • 对于UI自动化测试,少了真实浏览器加载css,js以及渲染页面的工作。无头测试要比真实浏览器快的多。
    • 可以在无界面的服务器运行测试,减少了外界的干扰,使自动化测试更稳定。
    • 在一台机器上可以模拟运行多个无头浏览器,方便进行并发测试。
Chrome谷歌浏览器

Chrome的驱动下载地址:

  1. https://npm.taobao.org/mirrors/chromedriver (淘宝镜像)
  2. http://chromedriver.storage.googleapis.com/index.html

Chrome浏览器历史版本下载:

  1. http://dl.timerim.com/google-chrome-x64.htm
  2. https://www.chromedownloads.net/chrome64win/

 

查看自己Chrome浏览器的版本。打开你的Chrome浏览器的设置▶帮助▶关于Google Chrome(G):这里的版本:85.0.4183.83

 打开淘宝镜像下载谷歌驱动

 点击进入

 notes.txt详细介绍

回到之前的驱动下载页面,根据系统选择不同的安装包,windows系统我选择chromedriver_win32.zip,点击链接立即下载到本地

下载完成后,将压缩包中的chromedriver.exe可执行文件 将该文件移动到Python的安装目录中的Scripts目录:

 验证安装是否成功:

import time
# 1、导入webdriver
from selenium import webdriver

# 2、实例化指定浏览器的webdriver对象
driver = webdriver.Chrome()
try:
    # 3、访问指定的url,进行相关操作
    driver.get(url="https://www.baidu.com")
    driver.find_element_by_id("kw").send_keys("青城子")
    driver.find_element_by_id("su").click()
# 4、完事后,关闭浏览器
except Exception as error:
    print(error)
finally:
    time.sleep(2)
    driver.quit()
Firefox火狐浏览器

1、先查看Firefox浏览器的版本,设置-->帮助-->关于Firefox

下载链接:https://github.com/mozilla/geckodriver/releases

根据自己的版本下载,选择驱动下载:

火狐下载的驱动名称:geckodriver.exe

 

下载完成后,将压缩包中的geckodriver.exe可执行文件 将该文件移动到Python的安装目录中的Scripts目录:

验证:

import time
# 1、导入webdriver
from selenium import webdriver

# 2、实例化指定浏览器的webdriver对象
driver = webdriver.Firefox()
try:
# 访问指定的url,进行操作 driver.get(url
="https://www.baidu.com") driver.find_element_by_id("kw").send_keys("青城子") driver.find_element_by_id("su").click() # 4、完事后,关闭浏览器 except Exception as error: print(error) finally: time.sleep(2) driver.quit()
Phantomjs

PhantomJS是一个无界面的、可脚本编程的WebKit浏览器引擎,其快速,原生支持各种Web标准: DOM 处理, CSS 选择器, JSON, Canvas, 和 SVG。

  • PhantomJS是一个基于webkit内核、无界面的浏览器,即它就是一个浏览器,只是其内的点击、翻页等人为相关操作需要程序设计实现;
  • PhantomJS提供Javascript API接口,可以通过编写JS程序直接与webkit内核交互;
  • PhantomJS的应用:无需浏览器的 Web 测试、网页截屏、页面访问自动化、网络监测。
官网:https://phantomjs.org/
github:https://github.com/ariya/phantomjs/

下载安装:

打开下载链接:https://phantomjs.org/download.html根据自己的系统平台,下载相应的包,我这里是Windows 64位系统,

所以,我选择下载windows版本的,phantomjs-2.1.1版本下载地址:

将压缩包解压到没有中文、空格的目录,我这里解压到Python的安装目录中的Scruots目录。

 测试:

import time
# 1、导入webdriver
from selenium import webdriver

# 2、实例化指定浏览器的webdriver对象,必须指定phantomjs的安装路径
driver = webdriver.PhantomJS(executable_path=r"C:\Python\Python37\Scripts\phantomjs\bin\phantomjs.exe")
try:
    # 3、访问指定的url,进行相关操作
    driver.get(url="https://www.baidu.com")
    print("获取title", driver.title)
    driver.find_element_by_id("kw").send_keys("青城子")
    driver.find_element_by_id("su").click()
# 4、完事后,关闭浏览器
except Exception as error:
    print(error)
finally:
    time.sleep(2)
        driver.quit()

PhantomJS 和新版的selenium已经分手,所以你在使用的时候,会有这提示,注意,这是提示,不是报错!

 解决办法!要么视而不见,要么按照提示去使用Google或者Firefox的无头浏览器吧

posted on 2018-04-25 16:37  赛兔子  阅读(577)  评论(0编辑  收藏  举报

导航