简介及运行流程

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

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

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

运行原理:

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

Selenium环境搭建

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

pip3 install selenium

当现实Successfully,表示安装成功

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

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

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

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

如图表示:该驱动可以支持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来调试代码,寻找元素

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

Python学习--Selenium模块简单介绍(1)的更多相关文章

  1. Python学习--Selenium模块学习(2)

    Selenium的基本操作 获取浏览器驱动寻找方式 1. 通过手动指定浏览器驱动路径2. 通过 `$PATH`环境变量找寻浏览器驱动 可参考Python学习--Selenium模块简单介绍(1) 控制 ...

  2. Python学习--Selenium模块

    1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台

  3. 【Python】operator 模块简单介绍

    简单介绍几个常用的函数,其他的请参考文档. operator.concat(a, b) **operator.__concat__(a, b)** 对于 a.b序列,返回 a + b(列表合并) -- ...

  4. Python+selenium之简单介绍unittest单元测试框架

    Python+selenium之简单介绍unittest单元测试框架 一.unittest简单介绍 unittest支持测试自动化,共享测试用例中的初始化和关闭退出代码,在unittest中最小单元是 ...

  5. python爬虫:爬虫的简单介绍及requests模块的简单使用

    python爬虫:爬虫的简单介绍及requests模块的简单使用 一点点的建议: (学习爬虫前建议先去了解一下前端的知识,不要求很熟悉,差不多入门即可学习爬虫,如果有不了解的,我也会补充个一些小知识. ...

  6. python shutil模块简单介绍

    python shutil模块简单介绍 简介 shutil模块提供了大量的文件的高级操作.特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作. shutil 模块方法: copy(src, ...

  7. python+selenium之简单介绍继承

    python+selenium之简单介绍继承 一.此例简单的介绍一下继承 1.面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型 ...

  8. Python常用的库简单介绍一下

    Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...

  9. python学习第二讲,pythonIDE介绍以及配置使用

    目录 python学习第二讲,pythonIDE介绍以及配置使用 一丶集成开发环境IDE简介,以及配置 1.简介 2.PyCharm 介绍 3.pycharm 的安装 二丶IDE 开发Python,以 ...

随机推荐

  1. Ansible-安装-秘钥-部署-使用

    本文转自:https://www.cnblogs.com/ylqh/p/5902259.html ansiblemaster:192.168.74.146 ansibleslave1 :192.168 ...

  2. 每天一个linux命令(目录)

    转:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每天 ...

  3. Window下JDK、Tomcat、eclipse安装与配置

    今天项目组开会,由于.Net平台的限制无法满足现有业务需求,项目计划从.Net平台转Java平台,采用Java+Spark+Hadoop,之前关于Java和Hadoop的书也买的有只是平时看的少,最近 ...

  4. iOS开源项目周报0413

    由OpenDigg 出品的iOS开源项目周报第十六期来啦.我们的iOS开源周报集合了OpenDigg一周来新收录的优质的iOS开源项目,方便iOS开发人员便捷的找到自己需要的项目工具等. glidin ...

  5. 表格行mouse经过时高亮显示

    昨天有解决网友一个问题<Repeater控件添加onmouseover和onmouseout事件>http://www.cnblogs.com/insus/p/3714013.html 这 ...

  6. Python的两种运行方式

    从2015年5月19日注册博客园,立志于要通过写博客的方式,记录自己编程的点点滴滴,由于自己太懒,一直拖到现在,“拖延症”是病得改,今天终于写自己第一篇博客了,有点小激动! Python是由Guido ...

  7. [android] 手机卫士号码归属地查询完成

    正则表达式完成号码验证, ^以某开头,[] 字符集(匹配中括号里面的任意字符),\d是任意一个数字,{n}表示出现了多少次,$结尾 手机号的正则 ^1[34568]\d{9}$,以1开头,第二个数字是 ...

  8. JavaScriptDay2-简单网页表单验证

    Html部分 <!-- 注册表单 1-用户名 text 2-密码 password 3-确认密码 password 4-性别 radio 5-爱好 hobby 6-籍贯 select-optio ...

  9. 【JavaFx教程】第三部分:与用户的交互

    第3部分的主题: 在表中反应选择的改变(TableView中). 增加增加,编辑和删除按钮的功能. 创建自定义弹出对话框编辑人员. 验证用户输入. 响应表的选择 显然,我们还没有使用应用程序的右边.想 ...

  10. while和if的区别

    while用于循环语句,而if用于判断和分支语句.由于你并没有指明是什么程序,只能泛泛而谈了.if 语句中,常用格式为:if(判断条件){执行语句}上面的结构,只是进行一次判断.if与else结合,就 ...