手机版

详细解释JavaScript在web自动化测试中的作用

时间:2021-08-20 来源:互联网 编辑:宝哥软件园 浏览:

前言

JS全称JavaScript,是一种运行在浏览器中的解释性脚本语言,通常用于实现web前端页面的基本功能。这是前端开发人员必须掌握的一项基本技能。但是,对于做web自动化测试的人来说,研究JS脚本语法来实现自动化测试不仅是浪费时间,也偏离了我们的重点,所以今天我就给大家总结一下。一些js脚本通常用于web自动化测试。只要掌握了这些脚本的使用,就不需要花太多时间去研究JS脚本。优秀的程序员有哪些素质?有现成的直接使用,绝不浪费时间自己写!_ _我开玩笑的。俗话说,如果你有更多的技能,你就不会不知所措。如果你掌握更多的技能,就不会有伤害。正文开始!

窗口滚动

用途:滑动网页

Def scrollto (x,y) : js=' '窗口。scrollto ('{x} ',' {y} ')' '。格式(x=x,y=y)驱动程序。执行脚本(js)参数描述

x:屏幕向右移动的距离

y:屏幕向下移动的距离

移除属性

用法:以下方法可以删除元素的任何属性,主要用于删除时间控件的只读属性

def remove_attribute(css,attribute,index=0): js=' ' ' var element=document . queryselectorall(' { CSS } ')[{ index }];element . remove Attribute(“{ attr }”);”。格式(CSS=CSS,index=index,attr=属性)驱动程序。执行脚本(js)参数描述

Css:css表达式

Index:索引值,默认为0,标识第一个元素

属性:元素的属性,如只读、值、名称等。

突出显示元素

目的:方便用户查看当前操作的是哪个页面元素,也方便测试人员定位问题

def height_light(css,index=0): js=' ' ' var element=document . queryselectorall(' { CSS } ')[{ index }];element.style.border='2px实心红色';'。格式(CSS=CSS,index=index)驱动程序。执行脚本(js)参数描述

Css:css表达式

Index:索引值,默认为0,标识第一个元素

单击元素

用法:因为web自动化最大的问题就是稳定性差,有时候用selenium不能点击元素,所以可以用JS实现元素的点击操作

def click(css,index=0): js=' ' ' var element=document . queryselectorall(' { CSS } ')[{ index }];element . click();”。格式(CSS=CSS,index=index)驱动程序。执行脚本(js)参数描述

Css:css表达式

Index:索引值,默认为0,标识第一个元素

清除输入框的内容

目的:清除输入框的内容

def clear(css,index=0): js=' ' ' var element=document . queryselectorall(' { CSS } ')[{ index }];element.value='。格式(CSS=CSS,index=index)驱动程序。执行脚本(js)参数描述

Css:css表达式

Index:索引值,默认为0,标识第一个元素

输入内容

目的:在输入框中输入内容

def输入(self,css,value,index=0): js=' ' ' var element=document . queryselectorall(' { CSS } ')[{ index }];element . value=“{ value }”;”。格式(CSS=CSS,index=index,value=value)驱动。执行脚本(js)参数描述

Css:css表达式

值:要输入的数据

Index:索引值,默认为0,标识第一个元素

解释

以上所有js操作也可以结合selenium中的WebElement以如下方式实现,因为在JS中查找元素的方法有限,比如xpath定位,这在JS中是不存在的

例如滚动页面

def scrollto (self,element,x,y) :js=' ' '参数[0]的参数描述。scrollto ('{} ',' {} ')' '。格式(x,y)驱动程序。执行脚本(js,元素)

元素:在selenium中通过定位方法找到的WebElement对象

参数[0]:表示execute_script()方法的第二个参数

试验码

我们只需编写一个测试脚本来测试上述JS脚本是否能够顺利执行

js_element.py

' '-@时间: 2019/8/23 19:00 @ Aut : Linux超@ File : js _ element。py @ IDE : py魅力@座右铭:真正的勇士,敢于直面惨淡的警告,敢于直面精辟的错误!@ QQ :[电子邮件受保护]@ GrouP : 878565760-' ' '类CssElement(对象):驱动程序=None def __init__(self,css,index=None,description=None): self。CSS=CSS如果指数为无:自我。索引=0 else : self。索引=索引自身。desc=description def _ _ get _ _(self,实例,所有者)3360如果实例为清除内容' js=' ' ' var elm=document。query selectorall(“{ CSS }”[{ index }];elm.style.border='2px纯红;elm.value=' ' ' '。format(css=self.css,index=self。索引)驱动程序。execute _ script(js)def输入(self,value): ' ' '输入内容' js=' ' ' var elm=document。query selectorall(“{ CSS }”[{ index }];elm.style.border='2px纯红;榆树。value=“{ value }”;"''.格式(css=self.css,index=self.index,value=value)驱动程序。execute _ script(js)def click(self): ' ' '点击元素' js=' ' ' var elm=document。query selectorall(“{ CSS }”[{ index }];elm.style.border='2px纯红;榆树。单击();"''.format(css=self.css,index=self。索引)驱动程序。' execute _ script(js)def remove _ attribute(self,attribute): ' ' '删除某个元素的属性,比如日期空间的只读的属性' js=' ' ' var elm=document。query selectorall(“{ CSS }”[{ index }];榆树。移除属性(“{ attr }”;"''.格式(css=self.css,index=self.index,attr=attribute)驱动程序。execute _ script(js)@ static method def remove _ attr(element,attr): js=' ' '引数[0]。移除属性(“{ attr }”;"''.格式(attr=属性)驱动程序。execute _ script(js,element)@ static method def scrollTo(x,y): js=' ' ' window。scroll to(“{}”,“{ }”)”.格式(x,y)驱动程序。execute _ script(js)@ static method def window _ scroll(元素,x,y): js=' ' '参数[0]。滚动到“({}”、“{ }”.format(x,y) driver.execute_script(js,element)def height _ light(self): js=' ' ' var element=document。query selectorall(“{ CSS }”)[{ index }];element.style.border='2px实心红色';'''.format(css=self.css,index=self。索引)驱动程序。execute _ script(js)@ static method def height _ lig(element): js=' ' '参数[0].style.border='2px实心红色';'driver.execute_script(js,元素)如果__name__=='__main__':通过用例

test_js.py

' '-@时间: 2019/8/22 16:51 @ Aut : Linux超@ File : test _ js。py @ IDE : py魅力@座右铭:真正的勇士,敢于直面惨淡的警告,敢于直面精辟的错误!@ QQ :[电子邮件受保护]@ Group: 878565760-' ' '导入时间来自硒。web驱动程序。远程。web驱动程序导入WebDriverimport unittestfrom来自硒导入webdriverfrom JavaScript。js _ element导入CssElementclass基类(对象): window=CSS element def _ _ init _ _(self,driver : WebDriver): self。驱动程序=驱动程序加载_网址(自身,网址):返回自己百度搜索框)search_button=CssElement('#su ',description='百度按钮)def搜索(self): self。搜索输入。height _ light()self。搜索输入。清除()时间。睡眠(2)#为了看到效果self.search_input.input('linux超)时间。睡眠(2)自我。搜索按钮。height _ light()self。搜索按钮。点击()时间。睡眠(2)自我。窗户。滚动到(' 0 ',' 500 ')时间。睡眠(2) #为了看到效果class chinarrailway(Base): data _ input=CSS element(' train _ date ',description='日期控件)def input_date(self,date): self。数据输入。height _ light()self。数据输入。remove _ attribute(' readonly ')自身。数据输入。输入日期时间。睡眠(2)#为了看到效果类TestJs(unittest .测试用例): def SEtuP(self): self。驱动程序=网络驱动程序.Firefox()self。司机。maximize _ window()self。司机。隐式等待(20)自我。Bai _ du _ page=百度页面(自我。司机)自我。中国_铁路=中国铁路(自营。驱动程序)def test _ search(self): ' ' '百度搜索自我。Bai _ du _ page。load _ URL(' https://www。百度。com’)自我。Bai _ du _ page。search()def test _ China _ railway(self): ' ' ' 12306日期自我。中国铁路。load _ URL(' https://www。12306 .cn/index/')时间。睡眠(5)#自我。中国铁路。input _ date(' 2021-01-01 ')def detrown(self): self。司机。如果_ _ name _ _=' _ _ main _ _ ' : unit test,则退出()。main()执行效果及输出

总结

以上所有的操作仅支持半铸钢钢性铸铁(铸造半钢)表达式,当然你可以修改替换querySelectorAll方法为getElementById,getElementByClassName等,但是需要注意使用的元素时,不需要指数参数;

射流研究…相对于硒的控制页面元素,执行速度更快,而且当遇到硒比较难处理的操纵时,可以考虑使用射流研究…代码来实现,当然还是需要你懂点射流研究…代码,不懂也没关系,掌握以上代码完全够你解决实际问题

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

版权声明:详细解释JavaScript在web自动化测试中的作用是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。