Windows:web端UI自动化=python+selenium+pycharm框架

本篇写怎么写一个UI自动化代码。mac和Windows是一样的 都是这样写 不过,习惯用Windows了

如果python没有安装可以看我另一篇安装python的教程 先安装python先

下载完python 下载pip

1 安装pip
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py  # 下载安装脚本
$ sudo python get-pip.py   # 运行安装脚本

首先下载安装对应的库及浏览器驱动

1python环境下安装selenium

终端输入:pip install selenium

检查selenium是否安装成功:pip lis 或者pip show selenium

2若想使 Selenium 能够调用浏览器,那么必须通过 webdriver 驱动来实现。不同的浏览器需要使用不同驱动程序,下面列出了不同浏览器驱动程序的下载地址:

谷歌浏览器 chromedrive:chromedriver.storage.googleapis.com/index.html

火狐浏览器 geckodriver:Releases · mozilla/geckodriver (github.com)

IE 浏览器 IEDriver:selenium-release.storage.googleapis.com/index.html

2.1检查;浏览器的版本,比如Chrome:帮助-关于Chrome

2.2下载跟浏览器版本相同的驱动(大版本相同即可)

看看刚刚查的谷歌浏览器版本找到对应驱动,比如我的122.0.6261.129 就不可以下载

因为 最高也才114  ,版本对不上会驱动不了,现在得重新下载个低版本的浏览器了

虽然我电脑的64位的,但是并没有64位,所以下载win32就行

2.3将浏览器的安装位置路径添加到环境变量里

下载后,解压,然后将解压出来的chromedriver.exe文件放入一个已经加入环境变量的目录中,或者将chromedriver.exe所在目录加入环境变量。

推荐将chromedriver.exe放入python安装目录下的Scripts目录中,因为该目录之前安装python环境时已经添加到了path环境变量中了,如:我的python安装目录是C:\Users\Administrator\AppData\Local\Programs\Python\Python38,如下图

2.4启动浏览器驱动 :chromedriver

终端输入:chromedriver

最后selenium的基础使用:python自动化框架代码

# 先导入后续要使用的包
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建一个webDriver的实例,接下来的所有操作都是在该实例上进行,以Chrome实例为例
driver = webdriver.Chrome()
# 窗口最大化
driver.maximize_window()
# 访问百度网址
driver.get("https://www.baidu.com/")
# 通过元素id找到对应元素并输入值进行搜索;此处为在百度搜索框输入selenium并点击查询
driver.find_element(By.ID,"kw").send_keys("selenium")
driver.find_element(By.ID,"su").click()
time.sleep(2)

再者补充一下定位元素方法 及注意的点

注意:

1定位元素的时候需要确定唯一性,可以在检查页面搜索它是不是唯一的。

2当页面内存在多个相同的定位特征值时,则定位方法默认会返回第一个符合条件的元素。

3定位原则:无论使用哪一种元素定位方法,都必须先保证期特征能够代表对应元素在当前页面的唯一性。

元素定位方法

1利用元素定位:先看id 再看name 其次是class

通过ID定位:使用元素的唯一ID进行定位。

driver.find_element_by_id("element_id")

 通过Name定位:使用元素的name属性进行定位。

driver.find_element_by_name("element_name")

 通过Class Name定位:使用元素的class属性进行定位。

driver.find_element_by_class_name("element_class")

通过Tag Name定位:使用元素的标签名进行定位。

 driver.find_element_by_tag_name("tag_name")

2超链接定位 :Link Text 全部文本信息、Partial Link Text 部分文本信息

通过Link Text定位:使用链接文本进行定位(适用于<a>标签)。

 driver.find_element_by_link_text("link_text")

 通过Partial Link Text定位:使用部分链接文本进行定位。

 driver.find_element_by_partial_link_text("partial_link_text")

3路径定位:XPath路径

通过XPath定位:使用元素在HTML结构中的路径进行定位。XPath是一种强大的定位方法,可以精确定位元素。

driver.find_element_by_xpath("xpath_expression")

其他说明:路径(相对路径)/绝对路径 ,最后full,属性,属性与逻辑结合, 属性与层级结合,属性包含,理由元素文本

4选择器定位:CSS选择器。

driver.find_element_by_css_selector("css_selector")

其他说明: id选择器 class选择器 属性选择器 元素选择器 层级选择器 属性选择器

拓展1:录制脚本

使用Selenium IDE

安装 在浏览器的拓展和主题 搜Selenium IDE  (去chrome的拓展和主题居然让我更新浏览器先 重新找能直接安装的包)

下载地址:下载适用于Chrome的Selenium IDE 3.17.2 CRX文件 - Crx4Chrome

在别的地方下载好的拓展包导入chrome浏览器:打开扩展程序,把包拉进来就行

使用方法:点击图标启动工具——点击Record a new test in a new project 选第二个——填写工程名——填写要录制的项目地址   带协议头的请求地址:"https://www.baidu.com"——操作   点击停止录制按钮——填写测试名称——可以降低回放速度 ——导出脚本功能 Tests ——选择熟悉语言 Export ——放桌面用编辑器打开查看脚本,编辑器就是之前说安装的Notepad++ 

 

拓展2:其他操作

1自己写的基础代码 可以在PyCharm中设置自定义代码模板(Live Templates),后面直接使用

全选,点击codo/tools ——save as live template ....忘记了

移除:File——settings ——搜 live ——live templates ——点击 -号移除

2代码快速复制:Ctrl +D

快速移动:shift + alt + ↓ 键盘上下箭头

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

宝塔面板使用docker+nginx+gunicorn部署Django项目实战教程

第一步&#xff1a;创建Django项目 使用pip install django安装创建django项目的依赖在电脑某个根目录下执行django-admin startproject app创建一个名为app的Django项目。目录结构如下: ├── app │ ├── init.py │ ├── asgi.py │ ├── settings.py │ ├── url…

机器学习:考试复习提纲

该页仅为复习资料&#xff0c;内含博客链接均通过搜索得到。 当然直接访问我的GitHub博客会更方便。 1. 线性回归 Linear Regression https://www.cnblogs.com/geo-will/p/10468253.html 要求1&#xff1a;可以按照自己的理解简述线性回归问题。 回归分析是一种预测性的建模…

buuctf re 37-40

[WUSTCTF2020]Cr0ssfun 打开 #include<iostream> using namespace std; int main() {char a1[32];a1[1] c;a1[25] ; a1[27] e;a1[4] 2;a1[17] r;a1[29] f;a1[17] r;a1[24] _;a1[2] t;a1[9] c;a1[32] };a1[19] v;a1[5] 0;a1[14] n;a1[15] d;a1[8] {;a1[18]…

【Leetcode每日一题】 动态规划 - 地下城游戏(难度⭐⭐⭐)(61)

1. 题目解析 题目链接&#xff1a;174. 地下城游戏 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 一、状态表定义 在解决地下城游戏问题时&#xff0c;我们首先需要对状态进行恰当的定义。一个直观的想法是&#x…

Oracle EBS Interface/API(54)- GL日记账审批

背景: 客户化创建薪酬凭证或者银企付款入账日记账以后,用户希望自动提交审批流程,无需到系统标准功能点击审批,减少用户操作。 快速参考 参考点内容功能导航N: GL->日记账->输入并发请求None基表GL.GL_JE_BATCHESAPI参考下面介绍错误信息表None接口FormNone接口Reque…

wiringpi库的应用 -- sg90 定时器 oled

sg 90舵机: 接线: VCC -- 红 GND -- 地 信号线 -- 黄 -- pwm 定时器: 先玩定时器: sg90 需要的pwm波需要定时器输出&#xff0c;so我们得先来玩一下定时器 分析&#xff1a;实现定时器&#xff0c;通过itimerval结构体以及函数setitimer产生的信号&#xff0c;系统…

Flume在大数据集群下的配置以及监控工具Ganglia的部署安装

前提&#xff1a;需要有三台虚拟机&#xff08;hadoop102,103,104&#xff09;配置好相关基础环境 安装 将安装包上传到/opt/software中 tar -zxf /opt/software/apache-flume-1.9.0-bin.tar.gz -C /opt/module/修改 apache-flume-1.9.0-bin 的名称为 flume mv /opt/module/…

Web安全知识

第二章 虚拟机运行架构&#xff1a; 1.寄居结构 2.原生架构 软件 注&#xff1a;Hyper-V是在Windows 2008操作系统上 附录 连接FTP服务器过程&#xff1a; 1.下载了软件&#xff1a; 2.连接到ftp://10.0.105.223/服务器&#xff08;访问老师课堂资源地址&#xff09; 关闭…

Node.JS后端开发笔记整理(简洁版)

前端 1. 开发环境和技术栈 开发工具&#xff1a;Visual Studio CodeNode.js版本&#xff1a;18.19.0&#xff08;建议保持在18&#xff09;包管理器&#xff1a;npm前端框架&#xff1a;Vue3.4脚本语言&#xff1a;TypeScript构建工具&#xff1a;Vite后端框架&#xff1a;Ex…

Django项目使用uwsgi+nginx部署上线

Django项目使用uwsginginx部署上线 前言settings 配置安装uwsgi 和配置uwsgi推荐配置文件启用wsgi不使用nginx的配置&#xff08;不推荐&#xff09;使用nginx的配置 安装 nginx和配置niginx 配置 运行参考资料 前言 代码已经开发完成&#xff0c;正式部署上线 settings 配置…

视频教程下载:用ChatGPT玩转海外抖音TikTok

CHATGPT for TikTok是一门前沿课程&#xff0c;旨在帮助您充分发挥TikTok广告活动的全部潜力。随着数字营销的爆炸性增长&#xff0c;企业需要使用先进的工具来保持竞争优势。在这门课程中&#xff0c;您将学习如何利用CHATGPT——一种先进的人工智能工具——来创建与目标受众产…

潜藏10年的恶意软件被发现;利用漏洞在K8S上挖矿;AWS、Google和Azure 出现信息泄露危机 | 安全周报0419

关键词&#xff1a;OfflRouter、恶意软件、VBA宏病毒、机密文件、可执行文件、iOS间谍软件、LightSpy、F_Warehouse、Azure CLI、AWS CLI、Google Cloud CLI 1. 近十年来&#xff0c;OfflRouter恶意软件在乌克兰一直未被发现 自2015年以来&#xff0c;部分乌克兰政府网络一直…

【软考】软件设计师中级

视频课 计算机组成原理 进制转换 定点数vs浮点数 校验码 计算机体系结构 指令系统 I/O 存储系统 直接映射&#xff1a;简单粗暴的死板派 全相联映射&#xff1a;跳脱的自由发挥派 组相联映射&#xff1a;折中派&#xff0c;组间直接映射&组内全相联映射 命中率&#xf…

你的mongodb客户端是哪个呢?

MongoDB 是一种流行的文档数据库&#xff0c;它可以支持多种场景和应用。有很多客户端工具可以用来管理和操作 MongoDB&#xff0c;以下是一些常用的工具&#xff0c;以及它们的介绍&#xff1a; 一、MongoDB Shell MongoDB Shell 是连接&#xff08;和使用&#xff09;MongoD…

【银角大王——Django课程Day1】

Django框架第一课 安装Django框架方式一&#xff08;命令行的形式创建Django项目&#xff09;方式二&#xff08;适合企业版的pycharm&#xff09;默认文件介绍app文件介绍快速上手我的导包一直爆红是因为我没使用解释器&#xff0c;没导入包&#xff0c;去设置里面导入包即可—…

(保姆级教学)跨站请求伪造漏洞

1. CSRF漏洞 CSRF&#xff08;Cross-site request forgery&#xff09;跨站请求伪造&#xff0c;也被称为One Click Attack 或者Session Riding&#xff0c;通常缩写为CSRF或者XSRF&#xff0c;是一种对网站的恶意利用。尽管听起来像跨站脚本&#xff08;XSS&#xff09;&…

【银角大王———Django学习DAY0——基础准备】

银角大王——Django学习前情提要 &#xff08;1&#xff09;在pycharm中下载Flask&#xff08;2&#xff09;使用Flask&#xff08;3&#xff09;下载BootStrap框架&#xff08;4&#xff09; 使用BootStrap框架 &#xff08;1&#xff09;在pycharm中下载Flask 在设置——项目…

搭建sql-lab出现的php不兼容

下载不了的时候&#xff0c;直接打开该网址下载5.xphp版本&#xff0c;解压到C:\php_studyv8\phpstudy\phpstudy_pro\Extensions\php&#xff08;可能路径都不一样&#xff0c;找到Extensions\php放到该目录下&#xff09;

element table加减列

// 有个特别注意的地方,下面这行代码,key一定绑的是item,千万不要绑定index,不然就会出现异常 //<el-table-column v-for"(item,index) in titleList" :key"item" min-width"150" align"center"><el-table fit :data"d…

微信小程序酒店选择日期和入住人数(有效果图)

效果图 app.vue onLaunch:function(options){this.defaultcache()}defaultcache(){// 入住信息缓存var arr this.getDateTime();var ReserVation {reservType:0,//1 人数 2日期InCheckin:{},//入离日期peopleArr:[{title:成人,num:2},{title:儿童,num:0},{title:宝子,num:1…
最新文章