生活消费
UI自动化测试  selenium:是WEB的UI测试框架,可以和主流的编程语言(Python,Java,Net,PHP,JavaScript)整合来测试WEB系统,同时也是支持主流的浏览器(IE,F
2025-01-03 08:23
                            看了无涯老师的博客整理的非常通俗易懂:

  在学习自动化测试之前,需要考虑我们为什么要学习自动化测试,以及今天业界谈的研发效能对测试而言意味着什么?其实这就需要在测试以及整体研发的角度来思考这个问题,在当下这样的市场环境中,打造高质量的持续交付产品质量,基本是所有互联网研发团队和测试团队都追求的一个方向。在敏捷流行的今天,以及新的技术在企业全面的落地,在测试而言,就需要通过测试技术的手段以及质量管理的思维能力来提升测试效率和交付满足市场期待的产品质量。

  自动化测试基础是所有测试形式里面就目前而言,是最基础的也是最核心的,因为自动化测试连接了功能测试以及高阶测试开发的测试技术栈的知识体系。

  即使初级测试员也得具备自动化测试得思维能力和技术能力。

  与API自动化测试相比较,UI自动化测试不论是从执行效率上还是编程难易度上都比API自动化测试要好,相比较API自动化测试地成本是比较高的,如果单纯的从技术复杂度上来说:UI与API的测试技术栈的体系都是一样的,不同的是:测试的思维以及背后的思想。但是还需要比较清楚的是:UI自动化测试在DevOps的体系以及测试流水线上它是非常必要的,只不过我们需要使用更加正确的姿势来利用好这个技术,比如使用它来验证核心的流程,而抛开更多的非主线的业务。不能简单的说它的测试执行效率低,就完全的否定UI自动化测试的价值,这样是很不理性的。在主流的UI自动化测试框架中,Selenium经过多年的发展,他的技术体系以及生态体系都是非常完善的,能够得到各大主流浏览器厂商的支持,和完善的document文档,以及与各个编程语言之间的兼容。

  在UI自动化测试中,最核心的基础就是需要定位到元素的属性 ,然后就可以针对这个属性进行具体的相关页面交互操作,比如进行关键字的输入, 以及点击的操作等。

 selenium3的源码体系,而元素的方法来自by模块中的by类,如下是具体源码:

   从by类中可以看到元素的定位方式有8种,在上面显示的非常详细,但是针对元素具体的方法都是在webdriver的模块里面,这些方法都在该模块里面。

  从元素分类的角度而言,元素定位可以分为单个元素定位和多个元素定位,那么也就是单个元素的方法有8种,多个元素的定位方法也是8种,总共16种方法。

针对单个元素代码如下:

  find_element_by_id()的方法主要指的是我们定位元素属性主要是以ID的方式来进行定位,ID一般都是唯一的,有时开发为了保持这种唯一性,使用了动态ID的方式:解决思路也非常简单,那就是XPATH的解决思路了。这地方还是聚焦于ID的属性定位方式,百度搜索输入框的ID源码为:

这是百度搜索输入框 input 输入框的源代码部分,从源代码我们就可以得到它的ID是kw ,下面是结合具体的代码进行操作:

  下面是以name的属性来进行定位和具体的操作,还是从上面的源码得到它的name为wd,调用的方法当然都是find_element_by_name()的方法,按照name的属性

在搜索输入框输入搜索关键字的测试案例如下

  下面是class的属性,它使用到的方法是find_element_by_class_name的方式来进行,在属性里面也就是class,以及从上面源码中知道,它的class为s_ipt,

下面实现以class的方式来进行测试代码:

  当一个元素实在定位不到的时候,也就是id,name,class都不可以的时候,可以使用xpath或者是css的模式,一般推荐xpath的方式,获取元素属性的xpath获取:

1.鼠标找到需要元素的属性
2.右键,点击copy,如下图所示:

 

 

 

 

 如果是动态的ID,获取到的xpath也是错误的,那么这个时候怎么解决问题了? 解决思路:点击copy full xpath,这样获取的是xpathde绝对路径,就不会因为动态ID而导致错误。下面还是以百度搜索输入框,获取到它的xpath为://*[@id="kw"],下面具体显示实战代码:

  使用css的定位操作方式与xpath的操作步骤都是一样的,只不过有点区别的是点击copy后,需要点击的是copy selector,具体如下图:

 

 

 调用的方法为find_element_by_css_selector, 百度搜索输入框获取到它的css为#kw,那么就以css的方式来演示这部分的测试实战代码,代码如下:

  在页面的交互中,如果存在超链接则可以使用的方法为find_element_by_link_text,比如在百度首先我们需要点击新闻,那么就可以使用这个方法来定位。一般而言在 a 标签里面的,我们都可以理解为超链接,就可以使用该方法来进行具体的操作,针对点击新闻的超链接测试代码为:

  针对超链接定位还有另一种方法就是find_element_by_partial_link_text,那么把它可以理解为针对超链接的定位方式,不过它可以使用模糊匹配的原则,比如点击视频,我们只可以使用一个关键字“频”,下面还是点击新闻的超链接,但是使用模糊的方式,测试代码如下:

  tag_name可以理解为是标签,例如:百度搜索输入框,它的标签是input,那么针对这种我们可以使用标签的方式来进行,使用到的方法

是find_element_by_tag_name,测试实战代码如下:

  出现问题仔细看看错误信息,我们是能够独立的解决问题的,出现这个问题说明元素定位找不到,导致错误,那么有可能是定位到的元

素属性是错误,还有一种是我们需要索引的方式来解决。如果是后者,是单个元素定位的方式无法解决的,就是多个元素可以解决的了。

  针对单个元素定位无法解决的问题,主要核心点是:获取到的元素属性都一样。比如以百度搜索输入框为例,我们使用的是input标签的方式进行,但是input标签有8个,那么就不是唯一的,具体如下所示:

 

 

 

  针对这种不是唯一的,我们可以使用多个元素定位的方式来解决,多个元素定位的核心思想是:获取到的元素属性是一个列表,可以使用列表的索引来进行定位,比如针对标签的方法就是find_elements_by_tag_name(),当然其他的方法其实都是一样的,先获取到它的属性,然后输出,就可以看到它的数据是列表,具体案例代码如下:

  因为我们定位的百度搜素输入框的input是在第八位,那么它的索引就是7,那么针对这部分的操作可以调整下代码,修改后的代码为:

 Python是函数式的编程语言,也是面向对象的编程,什么是函数?函数来自数学的思想,模块化的组织思维和把复杂问题简单化的结构化的思维方式,通俗的理解就是把一组语句的集合通过一个函数名封装起来,要想执行这个函数,只需要调用这个函数名就可以了。

多个元素定位的方式来进行,调整后的代码如下:

执行无任何的问题,但是有警告,具体警告信息为:

在上面有警告的信息中,我们可以具体到webdriver.py模块的606行看看警告信息,这部分的源码为:

很明显,按照官方的意思是,后面这种方式逐步的会被替代以及放弃,警告不是错误,但是让人不舒服,那么解决的思路是什么了?还是看官方的警告代码来分析,根据警告官方更加推荐我们使用(by=By.TAG_NAME, value=name)这种方式来解决,不管元素有多少个方法,我们只能分为两个,那就是单个元素定位和多个元素定位的方法,那么针对上面的封装进行改造,改造成(by=By.TAG_NAME, value=name)的模式,调整后的代码为:

再次修改后

 


    以上就是本篇文章【UI自动化测试  selenium:是WEB的UI测试框架,可以和主流的编程语言(Python,Java,Net,PHP,JavaScript)整合来测试WEB系统,同时也是支持主流的浏览器(IE,F】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/news/19765.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多   
最新文章
苹果电脑关不了机怎么办苹果手机无法关机怎么办「苹果电脑关不了机怎么办」
苹果电脑因其卓越的性能和设计赢得了众多用户的青睐,但在使用过程中,有时会遇到电脑无法关机的问题。这既可能是软件层面的原因
短剧出海赚疯了,有人月入8000多万
月入8000多万霸道总裁、平民逆袭、豪门恩怨等类型的爽文短剧不仅让国人疯狂上头,还火到了海外,收割了大批忠实的老外粉丝。在这
这不是电视剧!爸爸亲手将孩子从29楼扔下,坠落前还在喊“爸爸我爱你”
“砰!”一声巨响,29楼高空坠落的身影,划破了整个小区的宁静。楼下的人群炸开了锅,有人尖叫,有人报警,有人呆立原地。而那个
公园跳舞 音量不超55分贝手机分贝测试仪「公园跳舞 音量不超55分贝」
  本报讯(记者 王斌)景山公园和北海公园等市属公园昨天率先试点无噪音日,定在每个月的首个星期一,公园所有活动的音箱音量
幻兽帕鲁2024最全配种配方攻略:火绒手机版「幻兽帕鲁2024最全配种配方攻略:」
《幻兽帕鲁》一些帕鲁宠物可以相互之间来进行配种,以此来获得更高级别的帕鲁,词条也会更加珍稀。下面为大家整理了游戏中配种的
两年亏损52亿!建发巨资入主红星美凯龙,缘何沦为“双输困局”?
曾经头顶“中国最大家居卖场”光环的(601828.SH、01528.HK),如今却在国资入主近两年后陷入更深的泥潭。2023年,厦门国资建发
手工活150一天在家做是真的吗?(组装雨伞骨架手工活150元一天)可以挣钱的手机游戏「手工活150一天在家做是真的吗?(组装雨伞骨架手工活150元一天)」
有些小伙伴会遇到手工活150一天在家做(组装雨伞骨架手工活150元一天在家是真的吗?)的问题,没有关系,通过这篇文章希望能帮大家
华为手机怎么强制重启?全面教程助您轻松操作华为手机强制重启「华为手机怎么强制重启?全面教程助您轻松操作」
华为手机怎么强制重启?全面教程助您轻松操作在使用华为手机的过程中,可能会遇到一些问题,如手机卡顿、应用程序闪退等。遇到这
手机如何一键root三星Galaxy S9 获取root权限教程(无需解锁)安卓手机怎么root「手机如何一键root三星Galaxy S9 获取root权限教程(无需解锁)」
想玩修改游戏,想运行XP框架,想用游戏脚本刷BOSS,苦于手机不能root,找不到root的方法,怕手机root后不能保修。手机通过ROOT
余承东太猛了:华为降价2000元,买不到华为Mate60没关系华为手机降价「余承东太猛了:华为降价2000元,买不到华为Mate60没关系」
华为Mate60系列是史上最热门的手机,虽然没有举办发布会,但是国内外几乎家喻户晓,之所以有那么大的力量,主要是因为它是突破美