pythonUI自动化测试selenium安装使用

news2024/11/16 23:34:58

pythonUI自动化测试selenium安装使用

  • 一、selenium
  • 二、安装
    • 1. selenium其实虽然称之为工具,但是实际是python中一个库
    • 2.安装浏览器
    • 3.下载浏览器驱动
  • 三、元素定位
    • 1.常见的元素定位方式
    • 2.打开浏览器
    • 3.设置最大行
    • 4.设置隐式等待
    • 5.打开网页
    • 6.点击 登录 按钮
    • 7.设置等待
    • 8.用户名
    • 9.密码
    • 10.点击 登录 按钮

使用UI自动化测试就是用代码模拟人的操作(点击、输入、滑动、下拉选择、浏览)

  • web 网站

    QTP、selenium

  • pc端软件

    用的少

  • 移动端

    appium

一、selenium

用于完成web网页自动化测试,

selenium(化学元素:硒), 不得不提QTP的工具,2004年左右开始出现,qtp(汞)收费的,不开源,所以就使用成本比较高,

硒可以解汞的毒

  • selenium1.0
  • selenium2.0
  • selenium3.0

2016年出现的这个版本,

selenium IDE:提供了将操作转换为代码的功能,会记录人的动作,转换为selenium代码

selenium webdriver: 提供了控制浏览器执行的功能

selenium Grid: 提供了分布式执行测试用例的能力

注意:

谷歌、火狐、edge、ie(已经被放弃)、欧朋) 3.0的时候浏览器都由各自浏览器厂商开发

  • selenium4.0

提供了相对定位的功能

selenium Grid:支持k8s上部署

二、安装

1. selenium其实虽然称之为工具,但是实际是python中一个库

pip install selenium==3.14

2.安装浏览器

谷歌、火狐、edge

3.下载浏览器驱动

根据浏览器版本下载 edge(https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)

谷歌的驱动下载网站打不开,所以要使用淘宝的备用地址
http://chromedriver.storage.googleapis.com/index.html
http://npm.taobao.org/mirrors/chromedriver/
查看浏览器版本 ↓,我的版本为107.0.5304.88
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建D:\tools\driver 将驱动放到这个路径中去
在这里插入图片描述

要将这个路径添加到环境变量path 中 D:\tools\driver , 添加之后需要重启电脑 才能生效
在这里插入图片描述
下面展示一些 代码片

from selenium import webdriver


# 打开一个浏览器
chrome = webdriver.Chrome()

# 浏览器最大化
chrome.maximize_window()

#隐式等待
chrome.implicitly_wait(10)

# 打开网页
chrome.get("http://127.0.0.1:8080")

chrome.find_element_by_css_selector('input[placeholder="请输入账号"]').send_keys("admin")
chrome.find_element_by_css_selector('input[placeholder="请输入密码"]').send_keys("123456")

chrome.find_element_by_css_selector('button[class="el-button login-submit el-button--primary el-button--small"]').click()

三、元素定位

1.常见的元素定位方式

from selenium import webdriver
import time

2.打开浏览器

driver = webdriver.Edge()

3.设置最大行

driver.maximize_window()

4.设置隐式等待

driver.implicitly_wait(10)

5.打开网页

driver.get("http://172.16.3.153:8888/EasyBuy/Home?action=index")

6.点击 登录 按钮

# driver.find_element_by_css_selector('a[href="/EasyBuy/Login?action=toLogin"]').click()

driver.find_element_by_xpath('//a[@href="/EasyBuy/Login?action=toLogin"]').click()

7.设置等待

time.sleep(2)

8.用户名

driver.find_element_by_id('loginName').send_keys("admin")

9.密码

driver.find_element_by_id("password").send_keys("123456")

10.点击 登录 按钮

driver.find_element_by_css_selector('input[οnclick="login();"]').click()

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

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

相关文章

【javaEE】网络编程套接字

To u&me: 努力经营当下,直至未来明朗 文章目录前言一、网络编程(没时间可以跳过)一)网络编程了解二)相关基本概念二、Socket套接字三、数据报套接字通信(UDP)写一个最简单的UDP版本的客户端…

[附源码]java毕业设计科院垃圾分类系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

高级UI-Canvas(变换技巧,状态保存)

前言 在前面我们把Paint关于UI颜色样式的处理进行了学习, 其实真正高级部分就是三个点,渲染,滤镜,图形组合,而我们图形绘制比较重要的另一个对象Canvas也是需要我们去重点掌握的,那么这次课咱们来进行Canv…

数组与指针实验

指针与数组实验 先简单看一下以下c代码 #include <stdio.h> #include <stdlib.h> int main() {char array[10];array[0] 0x56;array[1] 0x78;array[9] 0x12;char *p (char *)malloc(10);p[0] 0x34;p[1] 0x12;printf("%p\n%p\n%p\n%p\n", array, …

[附源码]Python计算机毕业设计 家乡旅游文化推广网站

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【微信小程序】.js文件的代码结构与Page页面的生命周期

&#x1f3c6;今日学习目标&#xff1a;第十期——.js文件的代码结构与page页面的生命周期 &#x1f603;创作者&#xff1a;颜颜yan_ ✨个人主页&#xff1a;颜颜yan_的个人主页 ⏰预计时间&#xff1a;25分钟 &#x1f389;专栏系列&#xff1a;我的第一个微信小程序 文章目录…

尚医通 (二十二) --------- MongoDB 简介

目录一、NoSQL 简介二、什么是 MongoDB ?三、MongoDB 特点四、安装 MongoDB1. 数据库2. 文档3. 集合4. 适用场景五、MongoDB 概念解析一、NoSQL 简介 NoSQL (NoSQL Not Only SQL)&#xff0c;意即反 SQL 运动&#xff0c;指的是非关系型的数据库&#xff0c;是一项全新的数据…

使用SRM系统有哪些供应商管理优势?

SRM系统就是我们常说的供应商关系管理&#xff0c;它主要是用来改善与供应链上游供应商的关系&#xff0c;改善企业与供应商的关系的新型管理机制&#xff0c;使双方关系更加紧密&#xff0c;从而实现供应双赢。相信对SRM供应商关系管理系统有了解的朋友们并不陌生&#xff0c;…

[力扣] 剑指 Offer 第二天 - 复杂链表的复制

这里写目录标题题目来源题目描述示例示例 1示例 2示例 3示例 4题目解析算法 1代码实现执行结果复杂度分析算法 2代码实现执行结果复杂度分析总结耐心和持久胜过激烈和狂热。 题目来源 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 链接&#xff1a;https://leetcode…

鲁棒局部均值分解 (RLMD)(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

如何在Ubuntu 22.04使用wine安装windows版本微信

继上篇《如何在 Ubuntu 22.04 上安装 最新版本Wine》成功安装wine。使用以下命令安装&#xff1a; $ sudo dpkg --add-architecture i386 && sudo wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - && sudo apt-add-repository…

从零开始学前端:json对象,对象的序列化和反序列化 --- 今天你学习了吗?(JS:Day16)

从零开始学前端&#xff1a;程序猿小白也可以完全掌握&#xff01;—今天你学习了吗&#xff1f;&#xff08;JS&#xff09; 复习&#xff1a;从零开始学前端&#xff1a;购物车和鲜花价格排序 — 今天你学习了吗&#xff1f;&#xff08;JS&#xff1a;Day15&#xff09; 文…

JVM基础

JVM简介 JVM是java虚拟机简称&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际计算机上仿真模拟各种计算机功能来实现的。也正式因为有了它&#xff0c;java才具有了跨平台特性&#xff0c;”一次编译&#xff0c;到处运…

隐私计算行业应用情况和标准化现状

开放隐私计算 2022-11-16 19:17 发表于浙江 开放隐私计算 开放隐私计算OpenMPC是国内第一个且影响力最大的隐私计算开放社区。社区秉承开放共享的精神&#xff0c;专注于隐私计算行业的研究与布道。社区致力于隐私计算技术的传播&#xff0c;愿成为中国 “隐私计算最后一公里的…

如何利用快解析实现个人私有云

个人云盘曾火爆一时&#xff0c;原因有二&#xff0c;一是国内可选择的网盘越来越少&#xff0c;自建网盘无疑是一个不错的选项&#xff0c;毕竟网盘是数据存在别人那&#xff0c;始终让人心里不安&#xff0c;如同车辆一样&#xff0c;云盘就是公交车&#xff0c;私有云盘就是…

Matlab:在文本和值之间转换datetimeduration

Matlab&#xff1a;在文本和值之间转换datetimeduration将值转换为文本datetimeduration将数组转换为字符串数组指定输出文本的格式指定输出文本的区域设置将文本转换为值datetime解释输入文本的格式将文本转换为值duration解释输入文本的格式从文件中读取日期和时间此示例演示…

面试经常问的Linux进程到底是什么呢?1W字从0到1详解进程的所有细节!

目录 1.冯诺伊曼体系 2.操作系统 3.进程 4.进程的三种状态 4.1概念 4.2Linux中不同进程状态 5.进程的优先级 6.进程的几个其它概念 7.进程的切换 8.环境变量 8.1环境变量的概念 8.2常见的环境变量 8.3和环境变量相关的命令 8.4查看环境变量的方法 8.5通过代码获取环境变量的方式…

微信小程序 webview组件内嵌H5二维码识别

结果 支持公众号二维码支持小程序码支持个人名片支持群聊不支持页面二维码 做法 点击图片触发previewImage预览&#xff0c;长按识别 <script type"text/javascript" src"https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>wx.p…

IT部门不想每天忙“取数”,花了几百万买系统,还是这个办法有效

待过几年中小型传统企业的应该都有这个感知&#xff1a;虽然每个月都在采购新的软件系统&#xff0c;但整个公司的数字化仍旧一团糟&#xff0c;数字化转型是越搞越回去了。 这也很好解释。 传统企业业务部门繁多&#xff0c;在搞信息化阶段采购了很多业务系统&#xff0c;比…

C++ 11

文章目录1. 列表初始化1.1 列表初始化的使用格式1.1.1 内置类型1.1.2 自定义类型的列表初始化1.2 列表初始化的本质2. 变量类型的推导2.1 auto 关键字2.2 decltype类型推导3. 范围for4. final与override5. 智能指针6. 新增容器6.1 静态数组array6.2 单向链表 forward_list6.3 u…