• 大型情感剧集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

  • 相关阅读:
    js设计模式(一)---单例模式
    JavaScript---设计模式总结
    js设计模式---单例模式
    js设计模式---工厂模式
    react学习笔记01
    css常用布局
    js 继承
    vue路由动态加载
    vue 项目总结
    css文字两端对齐
  • 原文地址:https://www.cnblogs.com/huaweicloud/p/11861618.html
Copyright © 2020-2023  润新知