简介及运行流程
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来调试代码,寻找元素
偶遇到报错:查找元素报错,因为网页还没有完全加载出来吗,所有需要等待网页加载完成后再继续查找原始