当前位置: 首页 > news >正文

Selenium之简介

Selenium简介

首先,让我们看看官网是怎么定义的

Selenium是一个支持web浏览器自动化的一系列工具和库的综合项目,提供了扩展来模拟用户和浏览器的交互,用于扩展浏览器分配的分发服务器;用于W3C WebDriver规范的基础架构

其实,说白了,它的核心就是WebDriver,这是一个编写指令集的接口,可以在许多浏览器中运行

Web Driver

WebDriver使用的协议是W3C WebDriver(主流标准),旧版可能兼容 JSON Wire Protocol(已逐步淘汰);它的工作原理如下

  • 自动化测试代码发送请求给浏览器的驱动
  • 浏览器驱动解析代码,解析后发送给浏览器
  • 执行浏览器驱动发来的指令

它和浏览器建立通信的过程如下

  • 每一条脚本,都会创建一个Http请求,并且发送给浏览器驱动
  • 驱动中包含了Http Server,用来接受Http请求
  • Http Server接到请求后,根据请求来具体操控对应的浏览器
  • 浏览器执行具体的测试步骤
  • 执行结构又返回给HTTP Server
  • HTTP Server又把结果返回给脚本
Selenium的安装【Python版本】

接下来让我们看看Python和Selenium是怎么结合使用的;

【目前最新版本已经不需要手动安装驱动了,但是4.6之前的版本需要手动安装驱动】

所以最新版本,我们只需要前面两个步骤即可;

但是如果无网络的时候,还是得手动安装驱动的

  • 安装Python(不过多介绍,之前文章里有说到)

  • 安装Selenium

    pip install selenium
    
  • 检查浏览器版本,这个就是检查浏览器的版本,不多说了吧

  • 下载对应版本驱动,这里放一个Chrome的驱动下载页面把

    114以及更早版本Chrome Driver驱动下载

  • 不同浏览器驱动文件,统一放在一个目录下;方便使用

  • 添加驱动目录到系统变量PATH里面去

第一个脚本

这里访问的网站是一个测试大佬的,有兴趣的可以拿来练手

输入以下内容,然后运行即可;第一次可能时间会比较慢

from selenium import webdriver

broswer = webdriver.Chrome()
# 访问网站
browser.get(f'http://www.自动化测试.com/demo')
# 获取浏览器的标题并打印
title = browser.title
print(title)

使用driver路径的话,需要下面代码,才可以正常跑通

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

serve_path = r'D:\Code_Study\driver\chromedriver-win64\chromedriver.exe'
service = Service(serve_path)
browser = webdriver.Chrome(service=service)
# 访问网站
browser.get(f'http://www.自动化测试.com/demo')
# 获取浏览器的标题并打印
title = browser.title
print(title)
browser.quit()

你看,我们很方便的就可以使用代码来操控浏览器的;下一篇文章主要介绍以下Driver的一些常用属性

相关文章:

  • Json冲突崩溃问题
  • Logit-Laplace 分布:解决图像生成中像素值范围匹配问题的创新分布
  • cellnet框架概述
  • SQL 函数
  • stm32 f1 外接大功率负载方案 6DI/8DO/4AI/1AO
  • Node.js 模块系统
  • 【Linux】MAC帧
  • ClickHouse常见问题总结
  • DeepSeek概述
  • Oracle常用分析诊断工具(9)——ADDM
  • Linux——进程信号(1)(signal与sigaction)
  • mapreduce是如何进行迭代式计算的
  • Dify 部署指南-离线版
  • 页面元素内容太长,给元素添加title
  • Python+AI助力智能仓储:效率与科技的完美融合
  • Object.defineProperty()Proxy详解(Vue23数据劫持实现)
  • 原型模式及其应用
  • K8S学习之基础五十四:jenkins新建测试流水线
  • C++学习之new运算符和静态成员
  • docker中间件部署
  • 《探秘海昏侯国》数字沉浸特展亮相首届江西文化旅游产业博览交易会
  • 新能源车盈利拐点:8家上市车企去年合计净利854亿元,多家扭亏
  • 上海国际咖啡文化节开幕,北外滩集结了超350个展位
  • “人工智能是年轻的事业,也是年轻人的事业”,沪上高校师生畅谈感想
  • 打造沪派水乡的“湿意”,上海正在保护营造一批湿地空间
  • 癌症来临前,可能伪装成这几种常见病,千万别大意