​python使用selenium进行Web自动化测试​

news2024/12/22 12:49:54

什么是selenium

Selenium 是 ThoughtWorks 提供的一个强大的基于浏览器的

Selenium 是一个用于 Web 应用程序测试的工具,测试直接自动运行在浏览器中,就像真正的用户在手工操作一样。支持的浏览器包括 IE、Chrome 和 Firefox 等。这个工具的主要功能包括:测试与浏览器的兼容性 - 测试您的应用程序看是否能够很好地工作在不同浏览器和操作系统之上;测试系统功能 - 创建回归测试检验软件功能和用户需求;支持自动录制动作,和自动生成 .NET、Perl、Python、Ruby 和 Java 等不同语言的测试脚本。

安装python

安装selenium

pip install selenium

检测selenium

pip show selenium
 
  1. (venv) ➜ pytest pip show selenium

  2. Name: selenium

  3. Version: 4.1.0

  4. Summary:

  5. Home-page: https://www.selenium.dev

  6. Author:

  7. Author-email:

  8. License: Apache 2.0

  9. Location: /Users/terwer/Documents/PycharmProjects/pytest/venv/lib/python3.8/site-packages

  10. Requires: trio, trio-websocket, urllib3

  11. Required-by:

安装driver

firefox

下载geckdriver

下载地址:需注意的是浏览器的版本和driver驱动的版本要匹配

Google chrome

(Chrome对应Chromedriver,ie对应IEdriver)

下载对应版本的压缩包,然后解压,解压后的名称都是一样的,driver的路径可以放在python的script的路径下

ChromeDriver - WebDriver for Chrome - Downloads

错误解决

'chromedriver' executable needs to be in PATH.

找到文档

ChromeDriver - WebDriver for Chrome - Getting started

edge

使用 WebDriver 自动执行 Microsoft Edge - Microsoft Edge Development | Microsoft Learn

python运行第一个自动化脚本

 
  1. from selenium import webdriver

  2. def print_hi(name):

  3. driver = webdriver.Chrome("./chromedriver")

  4. driver.get("https://www.baidu.com")

  5. driver.quit()

  6. print(f'Hi, {name}')

  7. if __name__ == '__main__':

  8. print_hi('Selenium')

解决自动退出

python+selenium自动化,没有写close和quit,浏览器窗口会自动关闭解决方案

加参数

option.add_experimental_option("detach", True)

完整的代码

 
  1. # 加启动配置

  2. option = webdriver.ChromeOptions()

  3. # 关闭“chrome正受到自动测试软件的控制”

  4. # V75以及以下版本

  5. # option.add_argument('disable-infobars')

  6. # V76以及以上版本

  7. option.add_experimental_option('useAutomationExtension', False)

  8. option.add_experimental_option('excludeSwitches', ['enable-automation'])

  9. # 不自动关闭浏览器

  10. option.add_experimental_option("detach", True)

  11. driver = webdriver.Chrome("./chromedriver", chrome_options=option)

  12. driver.get("https://www.baidu.com")

  13. driver.maximize_window()

  14. # driver.quit()

edge版本

 
  1. from msedge.selenium_tools import Edge, EdgeOptions

  2. import os

  3. def start_dege():

  4. options = EdgeOptions()

  5. options.binary_location = r'/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge'

  6. options.use_chromium = True

  7. options.set_capability("platform", "Mac OS")

  8. # 不退出

  9. options.add_experimental_option("detach", True)

  10. browser = Edge(options=options, executable_path=r"/usr/local/bin/msedgedriver")

  11. browser.get('http://localhost:8090')

  12. def close_edge():

  13. os.system("killall -9 'Microsoft Edge'")

  14. print("previous Microsoft Edge is closed")

  15. if __name__ == '__main__':

  16. close_edge()

  17. start_dege()

  18. print("edge started")

全屏

 
  1. option.add_argument("--start-maximized")

  2. option.add_argument('window-size=2560,1440')

开源自动化测试工具。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1680620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【React】 打包扫描出现高风险文件 YUI 版本太低 JSEncrypt

漏洞定位 扫出漏洞的情况,多是在说下面几个工具: jquery js-cookie jsencrypt 参考链接 YUI:2.9.0 (Link) http://www.cvedetails.com/cve/CVE-2012-5883/ 1.于是在打包后的代码中搜索 YUI(不区分大小写,不进行全字匹配&…

BUUCTF靶场[MISC]荷兰宽带数据泄露、九连环

[MISC]荷兰宽带数据泄露 考点:查看路由器恢复丢失密码的文件 工具:RouterPassView——路由器密码查看工具 工具链接:https://routerpassview.en.lo4d.com/windows RouterPassView是一款老牌的路由器密码查看器,可以一键获取路…

终于搞懂Linux 设备树中的#address-cells,#size-cells 和reg 属性

目录 一、前置知识 1. 处理器平台2. reg 属性的基本格式3. reg 属性的作用 reg 用法 二、#address-cells 和 #size-cells 属性 1. 示例1 2. 示例23. 示例3 一、前置知识 要理解#address-cells和#size-cell 这两个属性,就要先了解 reg属性。 1. 处理器平台 下…

基于Django的图书管理系统

文章目录 前言一、页面展示1.登录2.前端页面3.后端页面 二、项目上传(1)导入数据库(2)导入项目(3)数据库密码修改(4)进入网站 总结 前言 本网站调用Django编写了图书管理网站&#…

【SpringBoot】SpringBoot3-基本介绍

目录 环境基本介绍pom.xml启动器依赖管理机制分析为什么导入starter-web所有相关依赖都导入进来?为什么版本号都不用写?自定义版本号第三方的依赖 总结 自动配置机制理解默认的包扫描规则配置默认值按需加载自动配置总结 自动配置流程问题流程步骤流程总…

网站开发初学者指南:2024年最新解读

在信息交流迅速的时代,网页承载着大量的信息,无论你知道还是不知道,所以你知道什么是网站开发吗?学习网站开发需要什么基本技能?本文将从网站开发阶段、网站开发技能、网站开发类型等角度进行分析,帮助您更…

前端JS必用工具【js-tool-big-box】学习,生成uuid,数组去重

js-tool-big-box这个前端工具库,今天又添加了2个实用功能,分别是生成uuid和数组去重。 目录 1 安装并引入 2 生成uuid 3 数组去重 1 安装并引入 安装最新版的js-tool-big-box工具包 由于生成uuid和数组去重属于两个不同对象下的方法,所以…

Trinity部署、使用与原理分析

文章目录 前言1、概述1.1、整体架构1.2、trinity-main1.3、childx 2、安装与使用2.1、源码安装2.1.1 部署系统依赖组件2.1.2 使用源码安装系统 2.2、使用方法 3、测试用例3.1、Splice系统调用压力测试3.2、其它系统调用压力测试3.3、自定义系统调用压力测试 4、总结4.1、部署架…

华为正式放弃高通芯片 | 百能云芯

5月15日,据外媒最新报道,高通公司正式确认,华为已无需依赖其处理器供应。 在出口许可被正式吊销前,高通的首席财务官已公开表示,预计明年与华为之间的芯片销售将为零,因为华为决定不再从高通购买4G芯片。 报…

centos7下使用docker安装fastdfs服务

先查看容器是否已经存在 docker ps -a 删除掉之前的tracker及storage服务 docker rm tracker docker rm storage 1、没有镜像先下载镜像 docker pull morunchang/fastdfs 2、运行服务 a、不指定物理服务器路径 docker run -d --name tracker --nethost morunchang/fastdfs sh…

Android Studio kotlin 转 Java

一. 随笔记录 java代码可以转化成kotlin代码,当然 Kotlin 反过来也可以转java 在Android Studio中 可以很方便的操作 AS 环境:Android Studio Iguana | 2023.2.1 二. 操作步骤 1.步骤 顶部Tools ----->Kotlin ------>Show Kotlin Bytecode 步…

Zotero 使用入门(笔记)

参考文献:Zotero入门完整教程-共27节-免费,李长太, 仅供参考学习

vue2基础语法03——过滤器filter

vue2基础语法03——过滤器filter 1. 前言1.1 需求1.2 不用过滤器实现1.2.1 插值语法、计算属性、方法实现1.2.2 更多关于计算属性 和 方法 2. 使用过滤器实现2.1 说明2.2 例子12.3 例子2——优化2.3.1 默认字母不分割2.3.2 默认字母以分割 2.4 过滤器使用地方 3. 全局过滤器4. …

实验室无法培养的菌,原来可以这么研究!

厌氧氨氧化(anammox)细菌在全球氮循环和废水氮去除中发挥着至关重要的作用,由于anammox细菌生长缓慢、难以培养等特点,对其生态学和生物学特性知之甚少。近日,凌恩生物合作客户重庆大学陈猷鹏教授团队在《Science of t…

Gemini 5.14日更新 - 推出Gemini Advance服务

收到Gemini Advance试用邀请 今天和往常一样,打开Gemini,惊喜的发现右小角一行小字:试用Gemini Advance。好家伙,OpenAI 刚推出ChatGPT 4o,Google立马推出Gemini Advance,说明国外高科技企业也是很拼的。 …

哈夫曼编码的应用

数据结构与算法课的一个简单实验,记录一下,以供参考。 文章目录 要求测试样例统计字母出现次数建立哈夫曼树对字符编码对原文进行编码译码 要求 输入一段100—200字的英文短文,存入一文件a中。统计短文出现的字母个数n及每个字母的出现次数…

公域流量如何引流到私域流量?

公域流量和私域流量是数字营销中常用的两种流量类型。公域流量指的是通过搜索引擎、社交媒体等公共平台获取的流量,而私域流量则是指企业自身拥有的用户群体和数据。那么,如何将公域流量引流到私域流量呢?下面我将为您详细解答。 1、提供有价…

开源社区社群兴趣搭子圈子,系统开发新论坛交流兴趣爱好圈子论坛可搭建本地同城社群圈子社区圈子同城找搭子圈子,包含小程序+公众号H5+安卓苹果app,源码交付!

优势 1、长时间的陪玩APP源码开发经验,始终坚持从客户的实际需求出发 2、提供安全的陪玩系统源码开发解决方案 3、需求定制不走弯路,源码交付,可二开 4、追求精细化服务,力求做好每一个陪玩系统源码开发环节搭建流程支持 PC 端…

多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合

● 环境框架:python 3.9 pytorch 1.8 及其以上版本均可运行 ● 使用对象:论文需求、毕业设计需求者 ● 代码保证:代码注释详细、即拿即可跑通。 往期精彩内容: 时序预测:LSTM、ARIMA、Holt-Winters、SARIMA模型的分…

MySQL 进阶使用【函数、索引、视图、存储过程、存储函数、触发器】

前言 做数仓开发离不开 SQL ,写了很多 HQL 回头再看 MySQL 才发现,很多东西并不是 HQL 所独创的,而是几乎都来自于关系型数据库通用的 SQL;想到以后需要每天和数仓打交道,那么不管是 MySQL 还是 Oracle ,都…