zoukankan      html  css  js  c++  java
  • 大型情感剧集Selenium:1_介绍 #华为云·寻找黑马程序员#

    学习selenium能做什么?

    很多书籍、文章中是这么定义selenium的:

    Selenium 是开源的自动化测试工具,它主要是用于Web 应用程序的自动化测试,不只局限于此,同时支持所有基于web 的管理任务自动化。

    可如果要是这么介绍selenium,估计明天关注我的人80%都要弃坑了,我又不是测试、我学什么selenium。wait a moment!先别取关…

    请仔细读读后半句,支持所有基于web的管理任务和自动化!

    什么算基于web的任务,就只是自动化测试?非也非也,只要是通过浏览器访问的事件,都可以算在内啊!

    如今,越来越多的反爬虫技术(千奇百怪的登陆验证、接口调用中的cookie验证、异步动态加载、等等…),是你没办法直接通过requests完成获取相关数据。这时候,你就可以使用selenium,模拟浏览器操作,自动化完成你的数据获取。

    简单介绍selenium

    公众号里面写上selenium的前世今生,你们肯定直接觉得篇幅太长懒得看了,那我简单的概括下:

    Jason Huggins 在2004年任职于ThoughtWorks时,发起了Selenium项目

    selenium存在三个版本1.0、2.0、3.0,且即将推出4.0

    Selenium 1.0 = Selenium IDE + Selenium Grid + Selenium RC

    Selenium IDE是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能

    Selenium Grid是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-App的功能测试

    Selenium RC分为Client Libraries和Selenium Server。Client Libraries库主要用于编写测试脚本,用来控制Selenium Server的库

    Selenium 2.0 推出了WebDriver用来替代Selenium RC(主推: WebDriver 备胎:Selenium RC)

    Selenium 3.0 WebDriver彻底替代了Selenium Grid

    WebDriver封装了基础的协议规范,WebDriver 针对各个浏览器而开发(所以针对不同浏览器,需要下载不同的webdriver),用来控制浏览器

    支持主流的编程语言,包括:Java、Python、C#、PHP、Ruby、JavaScript等

    针对我们Python学习的内容,就是:

    如何通过WebDriver封装的基础协议,完成正确的代码编写,从而控制浏览器进行成语接龙,为所欲为–为所欲为–为…

    学习准备

    Python3.5+,我使用的3.6.8…

    顺手的编辑器,我选择的pycharm

    配置好包管理工具pip,使用pip install selenium,完成selenium(selenium-3.141.0)的安装

    selenium支持多种浏览器,但差别仅仅是需要下载不同的Webdriver,所以挑一款浏览器即可,

    我选择Chrome(v70版本),不知道版本怎么看?(浏览器输入:chrome://settings/help)

    下载对应浏览器及版本对应的Webdriver,并配置环境变量

    代码和markdown文章统一放在了git仓库,地址:KingUranus/SeleniumTest

    不半途而废的信心,over…

    Chrome浏览器版本对应的Webdriver版本信息如下:

     

    ChromeDriver下载,推荐大家使用华为开源镜像站,下载对应系统的Webdriver,Webdriver为一个单独的exe文件,如何配置是它生效?最懒的版本是丢到你的python安装根目录,亦或者你单独找个私密的地址存起来,然后在环境变量的path中添加配置该地址。

    第一份selenium代码

    # -*- coding: utf-8 -*-
    # @Author   : 王翔
    # @JianShu  : 清风Python
    # @Date     : 2019/6/17 23:36
    # @Software : PyCharm
    # @version  :Python 3.6.8
    # @File     : Day1_FirstDemo.py
    
    # 引入webdriver,不报错代表代表selenium安装成功
    from selenium import webdriver
    # 演示所需,添加等待时间
    import time
    
    # 定义对应浏览器的webdrvier
    # 若提示xxxdriver executable needs to be in PATH
    # 你忘记下载webdriver,或者没配置好对应的环境变量
    # 当然也会有报错版本不匹配的情况发生,那么请调整好你浏览器与Driver的对应版本
    # 几种浏览器对应的引入方式
    # driver = webdriver.Firefox()
    # driver = webdriver.Ie()
    driver = webdriver.Chrome()
    
    # 打开浏览器,并在地址栏输入所需访问的网站(我的简书)
    driver.get("https://www.jianshu.com/u/d23fd5012bed")
    
    # 等待1秒,看看是否访问成功?
    time.sleep(1)
    
    # 退出drvier关闭浏览器
    driver.quit()
    

    效果如下:

    示ä¾

    避坑指南

    Message: ‘chromedriver’ executable needs to be in PATH

    说明你忘记下载webdriver,或者没配置好对应的环境变量

    selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome version must be between 71 and 75
    (Driver info: chromedriver=2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1),platform=Windows NT 6.1.7601 SP1 x86_64)

    2.46版本的chromedriver,需要对应71-75的浏览器,我是70的,所以报错,去下载2.45即可

    To Be Continue

    今天的内容就到这里,如果觉得有帮助,欢迎将文章或者我的公众号【清风Python】分享给更多喜欢python的人。

    来源:华为云社区征文 作者:清风Python

  • 相关阅读:
    【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 15—Anomaly Detection异常检测
    【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 14—Dimensionality Reduction 降维
    【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 13—Clustering 聚类
    【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 12—Support Vector Machines 支持向量机
    【原】机器学习公开课 目录(课程笔记、测验习题答案、编程作业源码)...持续更新...
    【原】Coursera—Andrew Ng机器学习—Week 11 习题—Photo OCR
    【原】Coursera—Andrew Ng机器学习—Week 10 习题—大规模机器学习
    【原】Coursera—Andrew Ng机器学习—Week 9 习题—异常检测
    【原】Coursera—Andrew Ng机器学习—Week 8 习题—聚类 和 降维
    【原】Coursera—Andrew Ng机器学习—Week 7 习题—支持向量机SVM
  • 原文地址:https://www.cnblogs.com/2020-zhy-jzoj/p/13165641.html
Copyright © 2011-2022 走看看