• Python学习--Selenium模块简单介绍(1)


    简介及运行流程

              Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。

              程序脚本可以通过Selenium API来控制脚本

              官网:https://www.seleniumhq.org/

    image

    运行原理:

    image

    通过Selenium API(上层统一控制浏览器API),控制IE/Chrome驱动(底层实现)来实现访问浏览器

    Selenium环境搭建

    0. 安装selenium:进入安装Python的Script目录下,执行

    pip3 install selenium

    image

    当现实Successfully,表示安装成功

    image

    1. 确定自己的Chrome浏览器的内核信息 [设置-> 关于Chrome]

    image

    2. 下载对应的浏览器驱动

    在selenium官网,点击download也可以看到下面的驱动链接

    - chrome 驱动下载地址:[https://sites.google.com/a/chromium.org/chromedriver/] 
    - 国内淘宝镜像:[http://npm.taobao.org/mirrors/chromedriver/]

    image

    image

    如图表示:该驱动可以支持Chrome v70-72版本(对应我们上面浏览器的Chrome 71)

    测试Demo

    通过驱动创建浏览器对象的方法

    1. 通过手动指定浏览器驱动路径
    2. 通过 `$PATH`环境变量找寻浏览器驱动 (复制文件到环境变量的路径下,建议放到Python的环境变量下)

     
    # coding: utf-8
    # 这里是第一种,需要提前复制驱动文件到当前项目中
    import time
    # 1. 导入模块
    from selenium import webdriver
    
    # 2. 创建浏览器对象,
    browser = webdriver.Chrome()  # 参数驱动路径,默认参数也是当前路径的chromedriver驱动
    
    # 3. 输入网址
    browser.get("https://www.baidu.com/")
    
    # 4. 找到输入框,输入关键词
    input_element = browser.find_element_by_id('kw')
    input_element.send_keys("博客园")     # 查询博客园
    # 5. 找到“百度一下”的按钮,点击一下按钮
    button = browser.find_element_by_id('su')
    button.click()
    time.sleep(3)               # 让网页加载完成
    # 6. 找到博客园链接
    url_element = browser.find_element_by_class_name("favurl")
    url_element.click()
    # 退出浏览器
    time.sleep(5)
    browser.quit()

    通过F12来调试代码,寻找元素

    image

    image

    偶遇到报错:查找元素报错,因为网页还没有完全加载出来吗,所有需要等待网页加载完成后再继续查找原始

    image

  • 相关阅读:
    dracut-initqueue timeout
    Request.Url
    ipv4 ipv6数据库存储
    DataRow To DataTable
    AS ShortCut
    linq on 多链接条件
    SQL逻辑查询语句执行顺序
    ckeditor 使用几点
    SqlDataAdapter 更新插入 与 InsertBulkCopy
    HTTP协议改HTTPS
  • 原文地址:https://www.cnblogs.com/ftl1012/p/Selenium.html
Copyright © 2020-2023  润新知