概述
使用Selenium,可以编写脚本来模拟用户在浏览器中的交互行为,如点击、填写表单、选择下拉框等操作。这些脚本可以自动运行,并验证应用程序的行为是否符合预期。
Selenium还有不同的工具和组件,包括Selenium WebDriver用于直接与浏览器交互,Selenium Grid用于在多个浏览器和平台之间并行执行测试,并提供了丰富的API和功能,用于处理浏览器操作和页面元素的查找、交互和断言等。
工作原理
利用浏览器原生API,封装成面向对象的Selenium WebDriver API(封装浏览器的各种功能),程序脚本通过Selenium API控制浏览器(分谷歌与微软),操作浏览器页面元素,或操作浏览器本身(截屏,窗口大小,启动,关闭)
应用场景
Selenium是最常用的自动化测试工具之一。它可以模拟真实用户的交互行为,自动化执行各种测试用例,包括功能测试、回归测试和性能测试等。通过Selenium,可以自动化测试Web应用程序的各种功能、验证用户界面的正确性,并捕捉和报告问题。
兼容性测试:
使用Selenium,可以在不同的浏览器和操作系统上运行自动化测试脚本,以验证Web应用程序在各种环境中的兼容性。这样可以确保应用程序在各种浏览器和平台上的一致性运行。
数据抓取和网页摘要:
Selenium可以用于抓取网页内容,从而获取所需的数据。通过编写脚本,可以模拟用户操作浏览器,访问网页并提取数据,如价格比较、新闻摘要等。
自动化表单填写:
当需要填写大量表单数据时,手动操作可能会消耗大量时间和精力。使用Selenium可以编写脚本来自动填写表单,提高效率。
UI自动化测试:
Selenium可以验证用户界面的正确性和一致性。通过模拟用户交互和操作,可以自动测试用户界面的各种情况,确保它们的正确性和功能性。
前端开发调试:
开发人员可以使用Selenium来调试和验证前端代码。通过自动化测试脚本,可以模拟用户操作并查看页面的渲染和功能是否正常工作。
安装浏览器驱动
以Chrome浏览器为例,安装浏览器驱动。
注意: 必须下载对应的 chrome 版本对应的驱动
chrome驱动:https://sites.google.com/chromium.org/driver/
chrome驱动(旧):https://sites.google.com/a/chromium.org/chromedriver/
国内淘宝镜像:http://npm.taobao.org/mirrors/chromedriver/
1.确定Chrome版本
确定Chrome版本为:110.0.5481.100
2.确定ChromeDriver版本
1)获取Chrome版本号,删除最后一部分,得到110.0.5481。
2)将结果拼接到https://chromedriver.storage.googleapis.com/LATEST_RELEASE_后面。
3)得到URL:https://chromedriver.storage.googleapis.com/LATEST_RELEASE_110.0.5481,并访问该链接得到ChromeDriver版本号。
3.下载ChromeDriver
找到ChromeDriver对应版本下载即可,这里由于是最新Chrome浏览器,故首页能一下找到。
根据操作系统下载不同的ChromeDriver
4.配置环境变量(可选)
解压压缩包后得到chromedriver.exe可执行文件,python代码是可以直接调用的。
在path环境变量中,添加chromedriver.exe 所在目录。
基本使用
安装Selenium模块
pip install selenium
注意点
由于版本迭代,新版的selenium已经不再使用find_element_by_id方法,而是使用find_element(By.ID, ''),具体参考selenium版本。
因版本迭代,可能出现异常:AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'
from selenium import webdriver
from selenium.webdriver.common.by import By
# 老版本
input_element = browser.find_element_by_id("kw")
# 新版本
input_element = browser.find_element(By.ID, 'kw')
使用分析
实现使用百度自动搜索selenium关键字,并自动点击跳转某个搜索结果。
获取输入框元素与获取搜索按钮元素信息:
获取第一个搜索结果地址信息:
代码实现
# 导入模块
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建浏览器对象,需指定驱动。驱动有2种方式获取
# 1.通过手动指定浏览器驱动路径
browser = webdriver.Chrome('D:\Development\chromedriver_win32\chromedriver.exe')
# 2.通过$PATH环境变量寻找驱动,如果寻找不到就报错
# browser = webdriver.Chrome()
# 指定操作浏览器对象的行为
# 让浏览器访问网页
browser.get("https://www.baidu.com/")
# 获取输入框元素
# input_element = browser.find_element_by_id("kw")
input_element = browser.find_element(By.ID, 'kw')
# 输入内容
input_element.send_keys('selenium')
# 获取搜索按钮
button_element = browser.find_element(By.ID, 'su')
# 点击搜索
button_element.click()
time.sleep(3)
# 获取地址
url_element = browser.find_element(By.CLASS_NAME, "c-gap-bottom-small").find_element(By.TAG_NAME, 'a')
url_element.click()
time.sleep(5)
# 退出浏览器
browser.quit()
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理