首页 > 其他分享 >web自动化测试复习巩固第一天

web自动化测试复习巩固第一天

时间:2024-01-23 17:33:06浏览次数:34  
标签:web 复习 第一天 定位 标签 元素 driver text 属性

selenium三大组成部分

官网地址:http://www.selenium.dev

 

selenium ide :firefox/chrome/edge安装插件 不要30分钟就能学会,是个录制工具。

selenium webdriver:第三方库。结合编程语言才能用。python/java/javascript/c#等。

selenium grid:配置化。分布式的配置。同样的代码在不同的浏览器中运行。同样的代码分成几份在5台机器上运行。。。。


1.浏览器驱动程序下载下来后,放在python安装目录下面

#这里如果驱动程序没有放在python的安装目录下的话,则在python代码中,实例化的时候给出驱动程序的完整地址。driver = webdriver.Chrome(executable_path = 驱动程序的完整路径,包括exe文件)

2.pip install -u selenium (最新版本是selenium4)


调用访问方法 ---get

driver.get("http://www.baidu.com")

调用截图方法

driver.save_screenshot("访问百度.png")

浏览器最大化

driver.maximize_window()

页面刷新

driver.refresh()

返回上一个页面

driver.back()

进入下一个页面

driver.forward()

HTML的构成

html表达结果,标签对。每一个内容就是一个标签对

<标签名 属性名=值>

...........(标签对/文本内容)

</标签名>

 

标签名:代表元素的类别

属性:公共属性 -- 元素特有的属性

公共属性:

id 类似与身份证号码,唯一标识,有可能会变动

class 给元素分类,可以有多个值,每个值之间用空格隔开,不能唯一识别元素

name 重复性不高,唯一性很强,一般是代表元素业务

style 内嵌样式

 

元素有3个东西可以用来定位:

标签名,属性,文本内容

了解地址:https://www.runoob.com/html/html-tutorial.html


元素定位

八大定位:

第一类:只用元素的一个特性来进行定位

id id属性

class_name class属性

tag_name 标签名属性

name name属性

link_text 只针对a元素的文本内容匹配 -- 完全匹配

partial_link_text 只针对a元素的文本呢人匹配 -- 模糊匹配

第二类:

xpath:相对定位

css selector:css选择器

selenium4中有9种定位方式

 


xpath的绝对定位和相对定位

绝对定位 -- 绝对路径

从根目录开始,每一层都涵盖进来了

相对定位 -- 相对路径

相对与参照物,只要参照物里面能够找到就可以,不用管路径关系

 

定位方式:

1.//标签名[@属性="值"]

2.//标签名[text()="值"]

3.//标签名[contains(@属性,"值")] //标签名[contains(@text(),"值")] 模糊匹配

4.支持逻辑运算:and or

//标签名[@属性="值" and @属性="值" and text()="值" and contains(text(),"值")]

以上4种,全是只利用元素得特性来定位得。当我们以元素本身得特性无法唯一定位这个元素时,就会利用元素在页面上得关系再综合自身特性一起进行定位。

层级定位

1.按照html页面得顺序,从上到下定位

例如:找到某个一直在变动得元素,可以先找到它的父级元素 //div@[@class="stu"]//p 尽量不要使用索引,如果你想取第二个元素,可以根据第二个元素的特征。例如//div@[@class="stu"]//p[text()="课程人数"]//....

2.轴定位

轴定位关系(已知元素,与要找的元素之间的关系)

preceding-sibling:同级的哥哥元素

following-sibling:同级的弟弟元素

parent:父级元素

ancestor:祖先元素(涵盖父级元素)

使用语法://...已知元素/轴定位名称::标签名[]/轴定位名称::标签名[]

只有使用轴定位的时候会用到单斜杠,其他都是双斜杠

//span[text()="y师-A-我參"]/ancestor::td/folloming-sibling::ta//span[text()="熙后"]

元素定位优化方向参为:http://testingpai.com/article/1595507202464

标签:web,复习,第一天,定位,标签,元素,driver,text,属性
From: https://www.cnblogs.com/xuhaotest/p/17982974

相关文章

  • KnightCTF 2024 WEB做题记录
    WEBLeviAckerman题目信息LeviAckermanisarobot! N:B:Thereisnoneedtodobruteforce. Author:saifTarget:http://66.228.53.87:5000/我的解答:签到题,题目提示了robot!直接访问robots.txt得到路径Disallow:/l3v1_4ck3rm4n.html再次访问路径得到flagK......
  • 网络编程总复习
    【6.0】网络并发总复习网络编程部分【一】软件开发架构【二】互联网协议【1】OSI七层【2】五层协议【3】以太网协议【4】IP协议【5】广播风暴【6】TCP/UDP【三】三次握手,四次挥手(****)【四】socket协议【五】TCP粘包问题(定值固定长度报头)【六】UDP协议【七】socketse......
  • 网络并发总复习解释版
    【7.0】网络并发总复习解释版网络编程部分【一】软件开发架构【1】什么是CS架构CS架构即客户端/服务端架构,如APP应用【2】什么是BS架构BS架构即浏览器/服务端架构,如网页的网站【3】二者相比的优缺点(1)优点CS架构服务器运行数据载荷轻数据的储存管理较为透明B......
  • Java web的过滤器Filter
    注:来自《JavaWeb入门经典》一书,仅供参考和学习。1.过滤器的核心对象2.创建并配置过滤器......
  • 单片机复习
    单片机复习一、单片机相关基本概念1、单片机概念书本:将微处理器、存储器和输入输出接口电路集成在一块集成电路芯片上,构成具有一定功能的计算机系统,因此称为单片机微型计算机,简称单片机。PPT:一片半导体硅片集成:CPU、存储器、并行I/O、串行I/O、定时器/计数器、中断系统、系统......
  • 浅析vue cli的webpack配置属性 devServer 详解 和 devServer.proxy 工作原理解析
    浅析vuecli的webpack配置属性devServer详解和devServer.proxy工作原理解析:https://blog.csdn.net/qq_47443027/article/details/125985081?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-125985081-blog-127746519.235^v......
  • WebGL之旋转(基础)
    一,index.html<body> <scriptid="vertex-shader-2d"type="notjs"> attributevec2a_position; attributevec2a_texCoord; uniformvec2u_resolution; uniformvec2u_translation; uniformvec2u_rotation;//旋转全局变量 varyi......
  • Python web crawler(5)多页网站拼接
    先搞单页网站:importrequestsfromlxmlimportetreeurl='https://*********.com/top250?start=1'headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/120.0.0.0Safari/......
  • CTF-秀-Web(1-3)
    write-up:web-1:题目描述:web签到题解题方法:打开靶机得到一个写着:wherisflag?的页面:先查看一下它的源码:得到一串类似base64的编码,然后把它放进base64里面进行解码一下得到我们的flag:ctfshow{c3a5c6fd-4bc3-45b5-ad68-afd54e4b99d6}web-2:题目描述:最简单的SQL注入解题......
  • 实训第一天
    publicclassHello{publicstaticvoidmain(String[]args){/**public:表示公有的,权限修饰符*class:Java中关键字,用来修饰一个类*Hello:类名*static:关键字表示静态*void:关键字表示无返回值*main:表示主方法名是Java程序的入口*(String[]args)表形参......