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.mzph.cn/pingmian/682.shtml

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

相关文章

Sentinel + Nacos流控规则持久化配置

json参数对映sentinel 规则面板 [{"controlBehavior": 0,"count": 2,"grade": 1,"limitApp": "default","resource": "flow","strategy": 0} ] 第二步&#xff0c;告诉订单服务读取配置&…

Golang | Leetcode Golang题解之第38题外观数列

题目&#xff1a; 题解&#xff1a; func countAndSay(n int) string {prev : "1"for i : 2; i < n; i {cur : &strings.Builder{}for j, start : 0, 0; j < len(prev); start j {for j < len(prev) && prev[j] prev[start] {j}cur.WriteStr…

Ubuntu的终端中启用鼠标左键即为选中复制,右键粘贴的功能

在Ubuntu终端中启用鼠标复制和粘贴的功能需要进行一些设置。 首先&#xff0c;打开终端窗口&#xff0c;在菜单栏中找到“Edit”选项&#xff0c;点击“Profile Preferences”。然后&#xff0c;在“General”选项卡中&#xff0c;勾选“Use custom font”选项&#xff0c;可以…

Excel中将单元格格式改成文本后,为何要双击数字才会改变?

将大批量的数值型数字转换成文本型数字&#xff0c;当然不能一个一个的去双击做转换了。以下说说有哪个可以将数值型数字转换成文本型数字的方法。 一、转换方法 方法1.数据分列功能 选中数据后&#xff0c;点击数据选项卡&#xff0c;分列&#xff0c; 分列向导的第一步和…

Transformer推理性能优化技术很重要的一个就是K V cache,能否通俗分析,可以结合代码?

原文&#xff1a;Transformer推理性能优化技术很重要的一个就是K V cache&#xff0c;能否通俗分析&#xff0c;可以结合代码? - 知乎 为什么要研究KV cache&#xff1f; 设输入序列的长度为 s &#xff0c;输出序列的长度为 n &#xff0c;模型深度为l&#xff0c;维度为h,以…

设计模式:简单工厂模式(Simple Factory)

设计模式&#xff1a;简单工厂模式&#xff08;Simple Factory&#xff09; 设计模式&#xff1a;简单工厂模式&#xff08;Simple Factory&#xff09;模式动机模式定义模式结构时序图模式实现测试模式分析实例&#xff1a;Qt 控件类优缺点适用环境模式应用 设计模式&#xff…

关基网络战时代,赛宁网安电力网络攻防靶场全面提升电网安全防护力

随着网络空间成为与陆地、海洋、天空、太空同等重要的人类活动新领域&#xff0c;自网络空间向物理电网发起攻击&#xff0c;破坏电力等国家关键基础设施成为当前大国博弈、大规模战争的重要手段和常态进攻形式。同时&#xff0c;新型电力系统建设发展驱动电力系统形态和控制方…

基于Springboot的社区待就业人员信息管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的社区待就业人员信息管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三…

TaskWeaver使用记录

TaskWeaver使用记录 1. 基本介绍2. 总体结构与流程3. 概念细节3.1 Project3.2 Session3.3 Memory3.4 Conversation3.5 Round3.6 Post3.7 Attachment3.8 Plugin3.9 Executor 4. 代码特点5. 使用过程5.1 api调用5.2 本地模型使用5.3 添加插件 6. 存在的问题与使用体验6.1 判别模型…

笔记本电脑坏了硬盘数据会丢失吗 笔记本电脑坏了如何取出硬盘的资料 数据恢复软件

笔记本电脑对我们真的非常重要了&#xff0c;是实现无纸化办公和学习的重要工具&#xff0c;但是如果笔记本电脑坏了我们存储在电脑里的资料该怎么办&#xff1f;笔记本电脑坏了硬盘数据会丢失吗&#xff1f;相信有许多朋友都会有这样的担忧。本文今天就为大家解决笔记本电脑坏…

【银角大王———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 在设置——项目…

【若依】代码生成详细教程(单表、主从表、树形表增删改查)

若依代码生成开发接口 修改代码生成配置一、单表实现增删改查1. 新建数据库表结构2. 新建模块&#xff0c;解决项目依赖3. 启动项目&#xff0c;新建菜单4. 导入数据表&#xff0c;自动生成代码5. 将生成代码粘贴到对应的模块&#xff0c;执行生成的sql&#xff08;用于生成菜单…

GitHub/R3D3项目环境配置踩坑记录

1、前言 项目链接地址&#xff1a;SysCV/r3d3 (github.com) 按照安装步骤容易出现的问题&#xff0c;environment.yaml文件中安装相关包&#xff0c;其中还有两个pip install githttps://github.com/..........这两个建议注释掉&#xff0c;后面再来安装这两个。 2、问题及解…

【C++题解】1020. 算算和是多少

问题&#xff1a;1020. 算算和是多少 类型&#xff1a;基本运算、拆位求解 题目描述&#xff1a; 输入一个三位正整数&#xff0c;然后与它倒过来的数相加&#xff0c;输出和。 如&#xff1a;输入167 &#xff0c;则和为167761928。 输入&#xff1a; 只有一行&#xff0c…

全开源小狐狸Ai系统 小狐狸ai付费创作系统 ChatGPT智能机器人2.7.6免授权版

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 测试环境&#xff1a;Linux系统CentOS7.6、宝塔、PHP7.4、MySQL5.6&#xff0c;根目录public&#xff0c;伪静态thinkPHP&#xff0c;开启ssl证书 具有文章改写、广告营销文案、编程…

PostgreSql-Install

PostgreSql源码安装 一、源代码下载二、操作系统配置三、编译安装四、启动数据库五、相关命令 PostgreSQL是一个强大的 开源对象关系数据库系统&#xff0c;它使用并扩展了SQL语言&#xff0c;并结合了许多功能&#xff0c;可以安全地存储和扩展最复杂的数据工作负载。 一、源…

gin框架提高篇(四)

参数校验&#xff08;一&#xff09; uuid包&#xff1a;https://github.com/satori/go.uuid 因为作者更改了参数限制&#xff0c;导致会出问题 → 问题解决 package mainimport ("fmt""github.com/gin-gonic/gin""github.com/go-playground/validato…

盲人盲杖:科技革新,助力视障人士独立出行

在我们的社会中&#xff0c;盲人朋友们以其坚韧的精神风貌&#xff0c;生动诠释着生活的多样与可能。然而&#xff0c;当我们聚焦于他们的日常出行&#xff0c;那些普通人视为寻常的街道、路口&#xff0c;却成为他们必须面对的严峻挑战。如何切实提升盲人盲杖的功能&#xff0…

【Linux进阶之路】高级IO

一、 铺垫 I&#xff0c;即input为输入&#xff1b;O&#xff0c;即output为输出&#xff0c;IO&#xff0c;即input output为输入输出。IO一般是基于网卡&#xff0c;磁盘&#xff0c;光盘&#xff0c;U盘&#xff0c;磁盘&#xff0c;磁带等毫秒级别的外存&#xff0c;相较…

Python实现贪吃蛇

提供学习或者毕业设计使用,功能基本都有,不能和市场上正式游戏相提比论,请理性对待!通过购买专栏或者CSDN问答提问,采纳后,私信博主。提供源码! 说明:需要的话联系博主!谢谢。 代码: import pygame import random import tkinter as tk from tkinter import mess…