ui自动化测试——selenium实战(1)

news/2025/3/19 20:43:09/文章来源:https://www.cnblogs.com/zz0124/p/18781751

1、定位文本框,密码框,按钮

from selenium import webdriver  #导入selenium模块中的webdriver
from time import  *
dx=webdriver.Chrome ()       #创建一个驱动谷歌浏览器的对象
dx.get("http://49.233.201.254:8080/cms/manage/login.do")     #通过get打开页面
sleep(2)
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
dx.find_element_by_id("loginBtn").click()

2、.链接,隐藏框

(1)链接 link_text

from selenium import webdriver
from time import  *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com")
sleep(2)
dx.find_element_by_link_text("网盘").click()

(2)隐藏框

案例1:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import  *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com")
sleep(2)
wz=dx.find_element_by_link_text("更多")               #隐藏框
ActionChains(dx).move_to_element(wz).perform()
sleep(2)
dx.find_element_by_link_text("健康").click()

ActionChains()括号中接当前浏览器对象

move_to_element()括号中接当前你要模拟悬停的具体元素位置

.perform()对当前的位置进行点击悬停(类似于鼠标放在上面的动作)''

案例2:

from selenium.webdriver.common.action_chains import ActionChains
from time import  *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com")
sleep(2)
dx.maximize_window()
sleep(2)
wz=dx.find_element_by_id("s-usersetting-top")
ActionChains(dx).move_to_element(wz).perform()
sleep(2)
dx.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[2]/span').click()
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import  *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com")
sleep(2)
dx.maximize_window()
sleep(2)
dx.find_element_by_id("s-usersetting-top").click()
sleep(2)
dx.find_element_by_link_text("高级搜索").click()

ActionChains类(鼠标操作)
常用于模拟鼠标的行为,比如单击、双击、拖拽等行为

  • click(on_element=None)     --- 鼠标单击
  • double_click(on_element=None)    ---  双击
  • context_click(on_element=None)   ---  右击
  • click_and_hold(on_element=None)   ---  鼠标单击并且按住不放
  • drag_and_drop(source,target)   ---  拖拽
     
  • drag_and_drop_by_offset(source,xoffset,yoffset)   ---  将目标拖动到指定的位置
  • key_down(value,element=None)  ---  按下某个键盘上的键
  • key_up(value,element=None)   ---  松开某个键
  • move_by_offset(xoffset,yoffset)   ---  鼠标从当前位置移动到某个坐标
  • move_to_element(to_element)   ---  鼠标移动到某个元素、
  • move_to_element_with_offset(to_element,xoffset,yoffset)  
    ---  移动到距某个元素(左上角坐标)多少距离的位置
  • perform()    ---  执行链中的所有动作
  • release(on_element=None)   ---  在某个元素位置松开鼠标左

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

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

相关文章

微服务跨模块调用接口如何传递当前用户信息

我们要在 api模块下 新增一个配置类 FeignInterceptorConfig 该类的作用是 跨模块调用接口时拦截然后给用户信息添加进去 具体实现方式 注意点是需要手动配置一下 通过Spring Boot的自动配置机制,将com.hmall.api.config.FeignInterceptorConfig类注册为自动配置类。具体作用…

听见未来,Audio+AI | GAS 2025完整议程揭晓!

听见未来,Audio+AI 2025中国国际音频产业大会(GAS) 将于 3月26-27日 在上海张江科学会堂盛大举办!大会主题聚焦聚焦“听见未来,Audio+AI”,两场主旨论坛、八场专题论坛。内容覆盖电子产业热点领域及方向,分别包括音频+AI、智能车载 音频、线上智能交互、智能耳机与可穿戴…

C++容器

容器的分类分为顺序容器(sequence) 关联容器(asscoiative) 无序容器(unordered) 顺序容器Array、vector、deque、list 关联容器有(mul)set和(mul)map,set和map的区别在于,set的key就是value,而map的key和value是分开的,set和map内部都是通过红黑树实现 无序容器主要为…

.NET Core奇技淫巧之WinForm使用Python.NET并打包

前言 之前整了一个GZY.EFCoreCompare 的库,可以用做对比实体与数据库结构.感兴趣可以去看看,地址:GZY.EFCoreCompare 但是只能导出execl表格. 后来大佬用Python写了个类,可以将execl表格直接生成SQL语句. 但是需要通过开发工具 或者python环境去运行. 对现场的非技术人员很不友…

MCP Server 开发实战指南(Python版)

原文链接:https://www.ryanzoe.top/ai/mcp-server-%e5%bc%80%e5%8f%91%e6%95%99%e7%a8%8b/ MCP 官方文档https://modelcontextprotocol.io/introduction各个 clients 对 MCP 的支持情况https://modelcontextprotocol.io/clientsMCP Python SDK:MCP Client 和 Server 官方 SDK…

Amphion 推出合成音频鉴别系统 Auditi;Gemini 引入 NotebookLM 功能,生成文档、网页音频摘要丨日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 技术 」、「有亮点的 产品 」、「有思考的 文章 」、「有态度的 观点 」、「有看点的 活动 」,但内容仅代表编辑…

洛谷题单指南-图论之树-P3398 仓鼠找 sugar

原题链接:https://www.luogu.com.cn/problem/P3398 题意解读:一颗n个节点的树,m个判断,判断树上两条路径是否相交,相交输出Y,否则输出N 解题思路:此题需要画一棵多叉树来辅助判断多次观察相交的路径,可以得出一个关键性质: 两条路径相交,必然有一条路径的LCA在另一条…

lg 主页

\(\Large\text{My Blog}\)中学:济南天山高级实验中学 关于我的学校究极久远预告:寒假游记滚滚长江东逝水,浪花淘尽英雄 是非成败转头空 青山依旧在,几度夕阳红 白发渔樵江渚上,观看秋月春风 一壶浊酒喜相逢 古今多少事,都付笑谈中街喧闹,人过往 且记曾相识,莫为少年留 …

day:25 selenium之介绍和环境配置

一、selenium介绍 selenium是一个第三方库,python有很多库; 1、什么是ui自动化? 通过模拟手工操作用户ui页面的方式,用代码去实现自动化操作和验证的行为。 2、ui自动化的优点? (1)解决重复性的功能测试和验证 (2)减少测试人员在回归测试时用例漏测和验证点的漏测 (3…

[算法学习记录] [更新中]最短路

顾名思义,最短路算法,就是求一个图中所有的点距某一个点的最短距离,常见的有Dijkstra算法、Bellman-Ford算法、Johnson算法与Floyd算法。 Dijkstra Dijistra算法实际上是一种由贪心与动态规划结合的算法,我们每次都贪心地选择到某个点的最近距离,又动态地更新着距离数组d的…

day6-static静态变量

静态变量/静态方法 被static修饰 工具类静态方法不能调用非静态。 非静态可以访问所有。 继承一个子类只能继承一个父类,可以多层继承,最大的父类为Objectcoding 练习:更好的方法:双指针不浪费空间

SpringBoot引入JWT实现用户校验

一JWT JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在网络应用环境间安全地传输信息。这些信息以JSON对象的形式存储在令牌中,并且可以被签名和加密。JWT通常用于身份验证和信息交换主要用途 身份验证:当用户登录成功后,服务器会生成一个JWT并返回给客户端。之后…