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

news2024/11/24 11:37:18

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 time

from 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.coloradmin.cn/o/1020741.html

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

相关文章

锐捷交换机vlan隔离(wifi段仅能访问外网,和内网隔离)

因为公司的wifi段,未做隔离,无意间上了网,发现能访问内网网段,这里内网是10、20段,管理网段是100段,于是做了和内网的vlan隔离。 拓朴如下,所有vlan的网关都起在核心上,核心上起了DH…

23062QTday2

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

华为数通方向HCIP-DataCom H12-831题库(单选题:41-60)

第41题 除了虚连接之外,OSPFV3的Hello报文源IPv6地址是哪种类型的IPv6地址? A、IPv6任播地址 B、唯一本地地址 C、全球单播地址 D、链路本地地址 答案: D 解析: 这里题目是源IPv6,不是目的IPv6,与另一题类似 第42题 下列描述中关于MPLS网络中配置静态LSP正确的是? A、…

three.js——模型对象的使用材质和方法

模型对象的使用材质和方法 前言效果图1、旋转、缩放、平移,居中的使用1.1 旋转rotation(.rotateX()、.rotateY()、.rotateZ())1.2缩放.scale()1.3平移.translate()1.4居中.center() 2、材质属性.wireframe 前言 BufferGeometry通过.scale()、…

uniapp h5网页打开白屏

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

【深度学习实验】线性模型(二):使用NumPy实现线性模型:梯度下降法

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入库 1. 初始化参数 2. 线性模型 linear_model 3. 损失函数loss_function 4. 梯度计算函数compute_gradients 5. 梯度下降函数gradient_descent 6. 调用函数 一、实验介绍 使用Nu…

Lombok依赖

一.介绍 Project Lombok 是一个 Java 库,它会自动插入编辑器和构建工具,为您的 Java 增添趣味。永远不要再写另一个 getter 或 equals 方法,使用一个注释,您的类有一个功能齐全的构建器,自动化您的日志记录变量等等。…

2023陇剑杯

2023陇剑杯初赛WP HW hard_web_1 ​ 首先判断哪个是服务器地址 ​ 从响应包看,给客户端返回数据包的就是服务器 所以确定服务器地址是192.168.162.188​ 再从开放端口来看,长期开放的端口 客户端发送一个TCP SYN包(同步请求&#xff…

VisualBox QA

出现提示注册表错误,或者之前正常,重启VisualBox后,VM运行失败时,可通过正确卸载VisualBox,然后使用注册表清理软件(CCleaner)清理注册表后,重装VisualBox,即会正常。(一般用这个能解…

CSS Id和Class选择器

文章目录 CSS id 选择器示例 CSS class 选择器CSS id和class的区别和相同点 CSS id 选择器 CSS的id选择器是以“#”开头的,用于选择具有特定id属性的HTML元素。 在HTML文档中,每个id应该是全局唯一的,也就是说,每个id只能用于一…

复杂场景:揭秘新生代光伏独角兽企业的数据管理秘诀

项目背景 最新一个光伏独角兽诞生了。 投资界获悉,一道新能源科技股份有限公司(以下简称“一道新能”)完成Pre-IPO融资。经多家投资方核实,此轮投后估值近80亿元。 一道新能源科技股份有限公司,成立于2018年8月&…

就业创业证查询

这里写目录标题 问题描述结果 问题描述 全国就业创业证查询系统自改版本后不支持根据姓名身份证号查询了,从社保局查又需要证书编号。 结果 经过不谢努力找到了解决办法,可以根据身份证姓名批量查询人员是否有就业证。

【Flowable】使用UEL整合Springboot从0到1(四)

前言 在前面我们介绍了Springboot简单使用了foleable以及flowableUI的安装和使用,在之前我们分配任务的处理人的时候都是通过Assignee去指定固定的人的。这在实际业务中是不合适的,我们希望在流程中动态的去解析每个节点的处理人,当前flowab…

家里电脑怎样远程办公室电脑?快解析映射域名实现内网穿透

远程电脑怎么操作是大家比较关注的问题,特别是涉及内外网,不在同一个局域网内不同计算机间的远程连接访问,如家里电脑怎样远程办公室电脑?这里提供一种简便的异地远程方法:用快解析。通过快解析映射域名软件&#xff0…

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

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

【面试题】——Java基础篇(33题)

文章目录 1. 八大基本数据类型分类2. 重写和重载的区别3. int和integer区别4. Java的关键字5. 什么是自动装箱和拆箱?6. 什么是Java的多态性?7. 接口和抽象类的区别?8. Java中如何处理异常?9. Java中的final关键字有什么作用&…

Java文字描边效果实现

效果: FontUtil工具类的完整代码如下: 其中实现描边效果的函数为:generateAdaptiveStrokeFontImage() package com.ncarzone.data.contentcenter.biz.img.util;import org.springframework.core.io.ClassPathResource; import org.springfr…

爱思唯尔——利用AI来改善医疗决策和科研

爱思唯尔(Elsevier)是一家全球性的多媒体出版公司,为教育、专业科学和医疗社区提供20,000多种产品,其中包括《柳叶刀》和《细胞》等领先的研究出版物。 该公司正处于数字化转型的第一阶段,将公司140年中发表在报告和期刊上的大量数据数字化。…

小米华为,化干戈为玉帛!

近日来,手机圈又掀起了各大厂家推出新品的高潮。首先是华为Mate60的推出,其自研的麒麟9000S芯片瞬间点燃了国内手机市场,得到了国内甚至国外业界人士的认可和好评。 而近日网上盛传的小米创始人雷军的“愿意加入华为技术生态圈”的邀请&…

CRM客户管理软件对出海企业的帮助与好处

2023我们走出了疫情的阴霾,经济下行压力大,面对内需的不足,国内企业纷纷选择出海,拓展海外业务增加企业营收。企业出海不是一件易事,有了CRM系统可以让公司事半功倍,下面就来说一说CRM客户管理软件能为出海…