自动化测试工具slelnium的初体验

1.slelnium介绍

        1.1 一个Web的自动化测试工具,最初是为网站自动化测试而开发的。

        1.2 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏。

      1.3 跨平台:linux、windows、mac ;

      简单点说:是一款Web应用程序测试的工具:可以在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转换为机器执行的过程。

2.工作原理

        2.1 利用浏览器原生API封装成一套面向对象的Selenium WebDriver API;直接操作浏览器页面里面的元素,甚至操作浏览器本身,例如截屏,窗口大小,启动,关闭,安装插件,配置证书

       2.2 webdriver本质是一个web-server,对外提供webapi,封装了浏览器各种功能;不同浏览器使用不同的webdriver

3.环境搭建

   3.1 python环境

        python下载地址 Download Python | Python.org

        我是下载的zip包 python-3.11.5-embed-amd64,解压到D盘

       下载pycharm地址: 下载PyCharm:JetBrains为专业开发者提供的Python IDE 

     

       关于python直接解压即可(注意,这个时候是看不到"Scripts",也不会看到 "Lib/site-packages")

      3.2 设置环境变量

        

        

pycharm是你安装的路径,本文我是放在D盘下

         

接着,我们 https://bootstrap.pypa.io/get-pip.py  打开之后,将其保存为get-pip.py;放在桌面即可;

不要着急运行,打开windosw文件管理窗口,输入地址 %APPDATA%,然在进入appdata,在这个文件夹下创建pip文件夹,然后新建一个pip.ini的文件,在文件里面填写如下内容(

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

) 保存;

然后cmd进入get-pip.py文件路径,执行 python get-pip.py;等待安装完成即可,安装按成之后,

可以看到多了lib和scripts文件夹;

继续设置环境变量

PS:记住用户变量和系统变量都要设置额;

输入python --version 查询到版本号表示安装设置成功。

3.2 安装selenium

     pip install selenium 运行此命令安装即可

    下载对应版本的webdriver(记住要和你浏览器版本大版本号一致额)

   国内地址: chromedriver镜像http://npm.taobao.org/mirrors/chromedriver/

   如果找不到对应浏览器版本的,也不要着急我们还有办法

ChromeDriver - WebDriver for Chrome - Downloads  官网下载嘛

可能你的和我的一样都是116,两个网站都没有对应版本,不着急哈,115的也是可以的

下载好了,直接解压到此路径(然后复制一份放到D:\sofaware\python-3.11.5-embed-amd64)

ok,到此结束了吗?不是额,还要设置环境变量额

这才是真的结束啦,可以开始玩耍了;

下面就是利用测试工具写的一个小demo

import timefrom selenium import webdriver
from selenium.webdriver import Keys, ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 创建WebDriver实例
driver = webdriver.Chrome()# 打开网页
driver.get('https://xxx.com/home')# 等待10秒# 通过class找到 'avator-txt'的标签,等待找到之后点击该标签
btn = WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.btn.btn-main')))
print(btn.text)
btn.click()
js = 'document.querySelector("btn btn-main").click();'
# driver.execute_script(js)
ActionChains(driver).move_to_element(btn).click().perform()
wait = WebDriverWait(driver, 10)
# 继续查找'ant-input'标签,等待找到第1和第二个
ant_inputs = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.CLASS_NAME, 'ant-input')))
print(ant_inputs)
# ant_inputs是一个包含所有'ant-input'元素的列表,你可以通过索引访问它们
first_ant_input = ant_inputs[0]
second_ant_input = ant_inputs[1]
WebDriverWait(driver, 10)
first_ant_input.send_keys("yonghu")
second_ant_input.send_keys("mima")
btnLogin = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, '.btn-login.ant-btn.btn-login.btn-login-active')))
ActionChains(driver).move_to_element(btnLogin).click().perform()
print("开始延时")
time.sleep(15)
print("结束")
# 操作完成后,关闭浏览器
# driver.quit()

这是一个简单的例子,打开一个网站,找到输入账号和密码的标签;输入账号和密码,点击登录。

ok,领导安排研究一下,没办法,花了几天时间搞得,有问题大家共同讨论

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

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

相关文章

23062QTday2

完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮…

ROS 入门

目录 简介 ROS诞生背景 ROS的设计目标 ROS与ROS2 安装ROS 1.配置ubuntu的软件和更新 2.设置安装源 3.设置key 4.安装 5.配置环境变量 安装可能出现的问题 安装构建依赖 卸载 ROS架构 1.设计者 2.维护者 3. 立足系统架构: ROS 可以划分为三层 ROS通信机制 话…

SQL中的PowerDesigner逐步深入提问,你能掌握多少?

你提到了有PowerDesigner操作经验,请解释一下PowerDesigner是什么,以及它在数据库设计和开发中的作用是什么? 标准回答: PowerDesigner是一种数据库建模和设计工具,它用于创建数据库模型、设计表结构、定义关系和生成…

【漏洞复现】Smanga未授权远程代码执行漏洞(CVE-2023-36076) 附加SQL注入+任意文件读取

文章目录 前言声明一、产品简介一、漏洞描述二、漏洞等级三、影响范围四、漏洞复现五、修复建议六、附加漏洞漏洞一、SQL注入漏洞二、任意文件读取 前言 Smanga存在未授权远程代码执行漏洞,攻击者可在目标主机执行任意命令,获取服务器权限。 声明 请勿利用文章内的相关技术从…

windows彻底卸载unity

1.控制面板卸载 双击打开桌面的控制面板,选择卸载程序,选中Unity和UnityHub右击卸载。 2.清除unity的注册表 在运行中输入“regedit”双击打开注册表界面 删除 HKEY_CURRENT_USER\Software\Unity 下所有项 删除 HKEY_CURRENT_USER\Software\Unity Tec…

电脑怎么取消磁盘分区?

有时候,我们的电脑会出现一个磁盘爆满,但另一个却空着,这时我们可以通过取消磁盘分区来进行调整,那么,这该怎么操作呢?下面我们就来了解一下。 磁盘管理取消磁盘分区 磁盘管理是Windows自带的磁盘管理工具…

BMS电池管理系统的蓝牙芯片 国产高性能 低功耗蓝牙Soc芯片PHY6222

电池管理系统是对电池进行监控与控制的系统,将采集的电池信息实时反馈给用户,同时根据采集的信息调节参数,充分发挥电池的性能。但是,前技术中,在管理多个电池时,需要人员现场调试与设置,导致其…

uniapp h5网页打开白屏

修改了默认基本运行路径,然后直接打开index.html的情况下是会这样,放在nginx服务器上运行就ok了。 把默认的./ 路径修改了:/cloudh5 nginx html目录下放子网站 :/cloudh5:

6-2 pytorch中训练模型的3种方法

Pytorch通常需要用户编写自定义训练循环,训练循环的代码风格因人而异。(养成自己的习惯) 有3类典型的训练循环代码风格:脚本形式训练循环,函数形式训练循环,类形式训练循环。 下面以minist数据集的多分类模…

Spring Boot集成Redis实现数据缓存

🌿欢迎来到衍生星球的CSDN博文🌿 🍁本文主要学习Spring Boot集成Redis实现数据缓存 🍁 🌱我是衍生星球,一个从事集成开发的打工人🌱 ⭐️喜欢的朋友可以关注一下🫰🫰&…

【最新面试问题记录持续更新,java,kotlin,android,flutter】

最近找工作,复习了下java相关的知识。发现已经对很多概念模糊了。记录一下。部分是往年面试题重新整理,部分是自己面试遇到的问题。持续更新中~ 目录 java相关1. 面向对象设计原则2. 面向对象的特征是什么3. 重载和重写4. 基本数据类型5. 装箱和拆箱6. …

华为aarch64架构的泰山服务器EulerOS 2.0 (SP8)系统离线安装saltstack3003.1实践

华为泰山服务器的CPU芯片架构为aarch64,所装系统为EulerOS 2.0 (SP8)aarch64系统,安装saltstack比较困难。本文讲解通过pip安装方式离线安装saltstack3003.1以进行集中化管理和维护。 一、系统环境 1、操作系统版本 [rootlocalhost ~]# cat /etc/os-r…

uniapp 可输入可选择的........框

安装 uniapp: uni-combox地址 vue页面 <uni-combox :border"false" input"selectname" focus"handleFocus" blur"handleBlur" :candidates"candidates" placeholder"请选择姓名" v-model"name"&g…

在微信公众号怎么实现投票活动

微信公众号实现投票活动的方法和步骤 一、投票活动的优势 通过投票活动&#xff0c;微信公众号可以实现用户参与、增加互动、了解用户需求等功能&#xff0c;同时也可以提升品牌知名度和用户粘性。以下是一些投票活动的优势&#xff1a; 增加用户参与度&#xff1a;通过投票活…

Unity中Shader的模板测试

文章目录 前言什么是模板测试1、模板缓冲区2、模板缓冲区中存储的值3、模板测试是什么&#xff08;看完以下流程就能知道模板测试是什么&#xff09;模板测试就是在渲染&#xff0c;后渲染的物体前&#xff0c;与渲染前的模板缓冲区的值进行比较&#xff0c;选出符合条件的部分…

sprinboot 引入 Elasticsearch 依赖包

1.springboot与es的版本有比较强的绑定关系&#xff0c;如果springboot工程引入es的依赖后报一些依赖的错误&#xff0c;那么就看表格中的对应关系&#xff0c;将sprinboot或者es的版本做对应的调整 2.本人是从springboot1.x升级到springboot2.x&#xff0c;做了排包工作 3.升级…

Linux学习记录——이십팔 网络基础(1)

文章目录 1、了解2、网络协议栈3、TCP/IP模型4、网络传输1、同一局域网&#xff08;子网&#xff09;2、局域网通信原理3、跨一个路由器的两个子网4、其它 详细的网络发展历史就不写了 1、了解 为什么会出现网络&#xff1f;一开始多个计算机之间想要共享文件&#xff0c;就得…

DirectX12(d3d12)初始化

一、前置要求 Windows 10及以上(安装有DirectX12)VisualStudio 2022 二、DirectX12入门 1.引用头文件 #include<Windows.h> #include<d3d12.h> #include<dxgi1_4.h>2.注册窗口类并初始化窗口 这里我们调用Windows API 通过应用程序的句柄来注册一个唯一…

uniapp视频播放功能

UniApp提供了多种视频播放组件&#xff0c;包括视频播放器&#xff08;video&#xff09;、多媒体组件&#xff08;media&#xff09;、WebView&#xff08;内置Video标签&#xff09;等。其中&#xff0c;video和media组件是最常用的。 video组件 video组件是基于HTML5 vide…

default 和 delete 与默认构造函数 的使用

前言 使用default和delete关键字来干预编译器自动生成的函数。让我详细解释一下这些知识点&#xff1a; 正文 编译器生成的默认构造函数&#xff1a; 如果类A没有定义任何构造函数&#xff0c;那么编译器会自动生成一个无参的默认构造函数 A()。这个默认构造函数实际上是一个…