版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章SeleniumWebDriver的基本应用《自动化测试应用教程(Web+App)》学习目标/Target了解SeleniumWebDriver的简介,能够阐述SeleniumWebDriver的作用掌握Web自动化测试环境的搭建,能够独自搭建Python环境、安装Selenium和浏览器驱动了解元素定位的简介,能够阐述元素定位的定义掌握浏览器定位元素的方式,能够灵活应用Chrome浏览器和Firefox浏览器定位页面元素掌握Selenium定位元素方法的使用,能够定位单个元素和一组元素学习目标/Target掌握获取元素常用信息方法的使用,能够获取元素尺寸、文本和属性掌握元素的常用操作,能够实现测试页面的输入、清除等操作掌握鼠标的常用操作,能够实现鼠标单击、双击、拖曳等操作掌握键盘的常用操作,能够实现复制、粘贴、全选等操作掌握浏览器的常用操作,能够设置浏览器窗口、刷新浏览器页面等章节概述/Summary在第1章中我们已学习了自动化测试的基础知识,初步认识了自动化测试,如果想要实现Web自动化测试,首先需要搭建自动化测试环境,然后编写Web自动化测试脚本,通过浏览器驱动操作Web页面。在编写自动化测试脚本的过程中,SeleniumWebDriver(网页驱动程序)扮演着重要的角色,在自动化测试脚本中调用SeleniumWebDriver提供的方法可以实现多种测试操作,例如元素定位、获取元素的常用信息等,所以我们需要学习并掌握SeleniumWebDriver在Web自动化测试中的应用。本章将对SeleniumWebDriver的基本应用进行讲解。目录/Contents0102SeleniumWebDriver简介搭建Web自动化测试环境03元素定位简介04使用浏览器定位页面元素05使用Selenium定位页面元素目录/Contents0607获取元素的常用信息元素的常用操作08鼠标的常用操作09键盘的常用操作10浏览器的常用操作SeleniumWebDriver简介2.1
先定一个小目标!了解SeleniumWebDriver的简介,能够阐述SeleniumWebDriver的作用2.1SeleniumWebDriver简介2.1SeleniumWebDriver简介SeleniumWebDriver(网页驱动程序)是基于Selenium2.0而设计的一套类库,该库提供了简单、丰富且设计良好的面向对象的API(ApplicationProgrammingInterface,应用程序编程接口)。SeleniumWebDriver是按照Server-Client(服务器端-客户端)的模式进行设计的。Server即RemoteServer(远程服务器),它主要是等待Client(客户端)发送请求并做出响应。Client以HTTP请求的方式将自动化测试脚本发送给Server,Server接收请求后执行相应操作并在Response(响应)中返回执行状态、返回值等信息。2.1SeleniumWebDriver简介SeleniumWebDriver是Python中用于实现Web自动化测试的第三方库,该库提供了定位元素方法、元素操作方法、鼠标操作方法、键盘操作方法等,通过这些方法解决了Selenium1.0版本无法触发键盘和鼠标事件的问题。SeleniumWebDriver和SeleniumRC都提供了Web自动化测试的各种语言调用接口库。SeleniumRC使用注入JavaScript的方式来驱动浏览器,此种方式的脚本执行速度较慢。与SeleniumRC不同的是,SeleniumWebDriver是使用浏览器的驱动程序来驱动浏览器,其脚本执行的速度更快,编程接口更加直观易懂,大大提高了测试人员编写脚本的效率。搭建Web自动化测试环境2.2
先定一个小目标!掌握Python环境的搭建,能够独自搭建Python环境2.2.1搭建Python环境步骤一:下载Python解释器访问Python的官方网站,下载Windows系统的Python解释器,具体操作过程如下图所示。2.2.1搭建Python环境步骤二:安装Python解释器Python解释器安装步骤123452.2.1搭建Python环境为了验证Python解释器是否安装成功,可以在cmd命令窗口中输入“Python”命令来检测,如下图所示。2.2.1搭建Python环境步骤三:下载PyCharm访问PyCharm官方网站并进入PyCharm的下载页面,选择Community版本进行下载,如下图所示。2.2.1搭建Python环境4步骤四:安装PyCharm123562.2.1搭建Python环境2.2.2安装Selenium
先定一个小目标!掌握Selenium的安装,能够独自安装Selenium2.2.2安装Selenium在进行Web自动化测试时,编写自动化测试脚本需要用到Selenium,所以需要在PyCharm工具中安装Selenium。在安装Selenium时可以通过两种方式,第一种方式是通过pip包管理工具进行安装,第二种方式是通过PyCharm进行安装。2.2.2安装Selenium首先打开cmd命令窗口,在该窗口中输入“pipinstallselenium”命令,如右图所示。1.通过pip包管理工具安装Selenium2.2.2安装Selenium当通过“pipinstallselenium”命令安装Selenium时,系统将默认安装当前最新的版本。如果需要安装指定的Selenium版本,则可以使用“pipinstallselenium==版本号”命令。2.2.2安装Selenium需要注意的是,如果使用pip包管理工具安装Selenium后,当打开PyCharm进行导包时提示找不到Selenium包,这说明使用pip包管理工具安装Selenium的默认安装路径和安装Python所在的安装路径不一致,此种情况下可以打开PyCharm,单击菜单栏中的“File→Settings”选项,会进入“Settings”对话框,在该对话框的右侧的“PythonInterpreter”处将路径修改为Python所在的安装路径即可。注意2.2.2安装Selenium通过PyCharm安装Selenium的具体操作过程如下图所示。2.通过PyCharm安装Selenium2.2.3安装浏览器驱动
先定一个小目标!掌握浏览器驱动的安装,能够独自安装浏览器驱动2.2.3安装浏览器驱动步骤一:查看Chrome版本信息首先单击Chrome浏览器右上角的
,然后选择“帮助→关于GoogleChrome”选项,会弹出一个“关于Chrome”页面,在该页面中可以查看Chrome的版本信息。2.2.3安装浏览器驱动步骤二:下载Chrome驱动访问Chrome浏览器驱动的官方网站,可以根据自己计算机上的Chrome浏览器版本下载对应的浏览器驱动版本,如下图所示。2.2.3安装浏览器驱动需要注意的是,如果Chrome浏览器的版本为92.0.4515.159,在Chrome浏览器驱动页面中找不到相同版本的浏览器驱动,可以找近似的版本驱动,例如,92.0.4515.107、92.0.4515.108等。注意2.2.3安装浏览器驱动当成功下载浏览器驱动安装包后,需要将浏览器驱动安装包解压到Python的安装目录中,如下图所示。2.2.3安装浏览器驱动需要注意的是,在网络连接正常的情况下,浏览器默认会自动更新为最新版本,此时浏览器版本与浏览器驱动版本就会出现不一致的问题,当运行自动化测试脚本代码时,程序会提示浏览器驱动版本不支持当前版本的浏览器。为了避免这个问题的出现,安装好浏览器后,需要手动关闭浏览器的自动更新功能。注意2.2.3安装浏览器驱动首先按下快捷键“Win+R”,打开运行对话框,然后在该对话框中输入“taskschd.msc”,单击“确定”按钮,此时会“打开任务计划程序”窗口,在该窗口中选中名称为“GoogleUpdateTaskUserS...”的条目,右击选择“禁用”选项,如下图所示。元素定位简介2.32.3元素定位简介
先定一个小目标!了解元素定位的简介,能够阐述元素定位的定义2.3元素定位简介测试Web项目时,其实是对项目中的每个网页进行测试的过程。网页是由文本、图像、按钮、超链接等各类视觉元素组成的,测试人员需要通过肉眼观察网页中的元素然后进行功能验证。但是在自动化测试的过程中,自动化测试工具是不能进行人为观察的,只有让自动化测试工具准确地定位到页面元素才能进行相关的测试操作,因此需要学习元素定位。2.3元素定位简介元素定位是通过元素信息或元素层级结构来定位元素的。SeleniumWebDriver根据网页中页面元素拥有不同的标签名和属性值等特征来定位不同的页面元素,当成功定位到页面元素后即可对页面元素进行操作。Web页面是由CSS、JavaScript等脚本语言开发的,可以通过查看Web页面的源文件找到页面元素的标签,该标签的语法格式如下。<标签名属性名1="属性值1"属性名2="属性值2">文本</标签名>上述格式中的属性名可以是id、name、class等,每一个属性名都有对应的属性值,而这些属性值是在定位元素时需要获取的元素信息。使用浏览器定位页面元素2.42.4.1使用Chrome浏览器定位页面元素
先定一个小目标!掌握Chrome浏览器定位元素的方式,能够灵活应用Chrome浏览器定位页面元素2.4.1使用Chrome浏览器定位页面元素当成功安装Chrome浏览器时,程序会默认安装该浏览器的开发者工具,通过浏览器的开发者工具,可以对Web页面中的元素进行调试和分析,同时也可以定位页面中的元素。打开Chrome浏览器开发者工具的方式有两种。通过F12快捷键打开。在页面中的任意地方右击,选择“检查”选项打开。2.4.1使用Chrome浏览器定位页面元素定位页面中某个元素的方式也有两种。在页面中该元素的上方右击选择“检查”选项即可定位到该元素。打开浏览器开发者工具,首先单击选择元素的图标
,然后单击要定位的元素。定位元素后,可在“Elements”中看到定位元素的id、name、class等属性信息。2.4.1使用Chrome浏览器定位页面元素下面以TPshop(开源商城)项目为例,按照前面所讲的定位元素操作,定位该项目登录页面中的密码框元素。密码框元素信息如下图所示。2.4.2使用Firefox浏览器定位页面元素
先定一个小目标!掌握Firefox浏览器定位元素的方式,能够灵活应用Firefox浏览器定位页面元素2.4.2使用Firefox浏览器定位页面元素下面以TPshop(开源商城)项目为例,使用Firefox浏览器来定位登录页面中的“登录”按钮元素。首先按下“F12”键打开Firefox浏览器开发者工具,此时在“登录”按钮上方右击选择“检查”选项,就可以定位到“登录”按钮,并看到该按钮的相关信息,如下图所示。使用Selenium定位页面元素2.52.5.1单个元素的定位
先定一个小目标!掌握Selenium定位元素的方式,能够定位单个元素2.5.1单个元素的定位在SeleniumWebDriver中提供了8种元素定位的方式,分别是id定位、name定位、classname定位、tagname定位、linktext定位、partiallinktext定位、xpath定位和css定位。下面将分别介绍使用这8种元素定位的方式对单个元素进行定位。2.5.1单个元素的定位id定位是通过元素的id属性值来定位元素。由于在HTML页面中id属性值一般不会重复,所以很少有根据id定位多个元素的情况,通常使用id定位单个元素。使用id定位元素的前提条件是元素中必须有id属性名。在程序中根据元素的id属性值定位元素时,可以调用find_element_by_id()方法,该方法的语法格式如下。find_element_by_id(id)#参数id表示元素在HTML页面中的id属性值1.id定位2.5.1单个元素的定位name定位是通过元素的name属性值来定位元素。由于在HTML页面中,name属性值是可以重复的,所以在使用name定位元素时就容易出现定位不准确的情况。如果HTML页面中存在多个重复的name属性值,可以选择8种元素定位方法中的其他方法来定位元素。使用name定位元素的前提条件是元素中必须有name属性名。find_element_by_name(name)#参数name表示元素在HTML页面中的name属性值在程序中根据元素的name属性值定位元素时,可以调用find_element_by_name()方法,该方法的语法格式如下。2.name定位2.5.1单个元素的定位classname定位是通过元素的class属性值来定位元素。在HTML页面中,class属性主要用于渲染页面的样式。如果使用classname定位元素,当一个HTML页面中的class属性值有多个时,选择其中一个即可。使用classname定位元素的前提条件是元素中必须有class属性名。find_element_by_class_name(name)#参数name表示元素在HTML页面中的class属性值在程序中根据元素的classname属性值定位元素时,可以调用find_element_by_class_name()方法,该方法的语法格式如下。3.classname定位2.5.1单个元素的定位tagname定位是通过元素的标签名来定位元素。HTML页面由多种不同的标签组成,一个页面中的某个标签也会出现多个,如果定位到多个相同的标签名,则默认只会定位第一个标签,所以在使用tagname定位元素时无法精确定位,一般很少使用这个方法。find_element_by_tag_name(name)#参数name表示元素在HTML页面的标签名在程序中根据元素的tagname属性值定位元素时,可以调用find_element_by_tag_name()方法,该方法的语法格式如下。4.tagname定位2.5.1单个元素的定位linktext定位是通过超链接的文本内容来定位元素,例如,<a>标签(超链接)中的文本内容。在程序中根据超链接的文本内容来定位元素时,可以调用find_element_by_link_text()方法,该方法的语法格式如下。find_element_by_link_text(text)#参数text表示超链接的全部文本内容5.linktext定位2.5.1单个元素的定位partiallinktext定位是通过超链接文本中的部分或全部内容来定位元素。partiallinktext定位与linktext定位比较类似,不同的是partiallinktext定位可以使用超链接文本中的部分或全部内容来定位元素,而linktext定位使用的是超链接文本中的全部内容来定位元素。find_element_by_partial_link_text(link_text)#参数link_text表示超链接文本的部分或全部内容在程序中根据超链接的部分或全部文本内容来定位元素时,可以调用find_element_by_partial_link_text()方法,该方法的语法格式如下。6.partiallinktext定位2.5.1单个元素的定位xpath(XMLPathLanguage的简称)定位是基于元素的路径定位,在程序中根据元素的路径定位时,可以调用find_element_by_xpath()方法,该方法的语法格式如下。find_element_by_xpath(xpath)#参数xpath表示元素路径7.xpath定位2.5.1单个元素的定位绝对路径是从最外层元素到指定元素之间所有经过元素层级的路径。绝对路径的写法是以单斜杠开头逐级开始编写,不能跳级。(1)xpath通过绝对路径定位元素(2)xpath通过相对路径定位元素相对路径可匹配任意层级的元素,不限制元素的位置。相对路径的写法是以双斜杠开头,双斜杠后面紧跟着元素名称,不确定的元素名称可以使用*代替。例如,//input或//*。2.5.1单个元素的定位xpath定位元素写法说明//span/input[1]通过索引定位,表示选取第一个与表达式//span/input匹配的元素//span/input[last()]通过索引定位,表示选取最后一个与表达式//span/input匹配的元素//input[@id='dl']通过id属性定位,表示定位id属性值为dl的元素//input[@name='mz']通过name属性定位,表示定位name属性值为mz的元素//input[@class='s_ipl']通过class属性定位,表示定位class属性值为s_ipl的元素//*[@id='kw']通过通配符*定位,表示定位所有id属性值为kw的元素//a[@name='book'ortext()='music']通过逻辑表达式定位,表示定位name属性值为book或者文本内容为music的元素/a[contains(@href'新闻')andtext()='新闻联播']通过逻辑表达式定位,表示定位href属性中包含“新闻”并且文本内容中包含“新闻联播”的元素/html/body/input[1]通过绝对路径定位,表示定位/html/body/input下的第一个<input>标签常用的xpath定位元素写法与说明如下表所示。2.5.1单个元素的定位css定位通过css选择器工具进行定位。该方法比xpath定位的速度快,css语法也十分强大,语法比xpath简单,但是对初学者来说,学习起来稍微有点难度。在程序中根据css选择器工具进行定位时,可以调用find_element_by_css_selector()方法,该方法的语法格式如下。find_element_by_css_selector(css_selector)#参数css_selector表示选择器8.css定位2.5.1单个元素的定位常用的选择器包括id选择器、class选择器、元素选择器、属性选择器和层级选择器等,其中,层级选择器又分为父子层级选择器和隔代层级选择器,不同的选择器在语法和使用方法上也会有所差异。2.5.1单个元素的定位css选择器语法格式说明id选择器#id根据元素id属性选择,例如#userA,表示选择id属性值为userA的元素class选择器.class根据元素class属性选择,例如.telA,表示选择class属性值为telA的所有元素元素选择器element根据元素标签名选择,例如input,表示选择标签名为<input>的所有元素属性选择器[属性名=属性值]根据元素的属性名和属性值选择,例如[type="password"],表示选择type属性值为password的元素父子层级选择器element1>element2根据父子层级选择,element2是element1的直接子元素,例如p[id='p1']>input,表示定位指定p元素下的直接子元素input隔代层级选择器element1
element2根据隔代层级选择,element2是element1的后代元素,例如p[id='p1']input,表示定位指定p元素之后的所有input元素常用的css选择器语法格式和说明如下表所示。2.5.1单个元素的定位学习了8种常用的元素定位方式后,下面以TPshop(开源商城)项目为例,使用这8种常用的元素定位方式来定位该项目中的登录页面元素,具体代码如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()url="http://hm/Home/user/login.html"driver.get(url)#通过id定位手机号/邮箱输入框元素username=driver.find_element_by_id("username").send_keys()#通过name定位密码输入框元素password=driver.find_element_by_name("password").send_keys("123456")#通过id定位验证码输入框元素driver.find_element_by_id("verify_code").send_keys("8888")#利用xpath定位"登录"按钮元素driver.find_element_by_xpath("//*[@id='loginform']/div/div[6]/a").click()2.5.2一组元素的定位
先定一个小目标!掌握Selenium定位元素的方式,能够定位一组元素2.5.2一组元素的定位当测试的页面上有多个元素需要操作时,逐一进行定位就会比较烦琐,例如需要同时选择页面中的所有复选框,这时候可以通过一组元素进行定位。定位单个元素的方法和定位一组元素的方法类似,区别在于,定位一组元素时需要在方法中的find_element后面加上s,即find_elements,表示元素为复数。2.5.2一组元素的定位方法说明find_elements_by_id()表示通过元素的id属性值定位一组元素find_elements_by_name()表示通过元素的name属性值定位一组元素find_elements_by_class_name()表示通过元素的class属性值定位一组元素find_elements_by_tag_name()表示通过元素tagname(标签名)定位一组元素find_elements_by_link_text()表示通过超链接全部文本内容定位一组元素find_elements_by_partial_link_text()表示通过超链接部分或全部文本内容定位一组元素find_elements_by_xpath()表示通过元素路径定位一组元素find_elements_by_css_selector()表示通过css选择器定位一组元素定位一组元素的方法如下表所示。2.5.2一组元素的定位下面以传智教育官网为例,定位传智教育官网首页横向的一组导航菜单链接,然后随机单击任意一个链接。首页导航菜单链接的元素信息如下图所示。2.5.2一组元素的定位定位一组导航菜单链接元素的具体代码如下。importrandomfromseleniumimportwebdriverdriver=webdriver.Chrome()url="/"driver.get(url)#获取首页头部横向的所有链接elements=driver.find_elements_by_class_name("a2_js")length=len(elements)#随机获取一个链接Random_selection=random.randint(0,length-1)elements[Random_selection].click()多学一招在元素定位时,还可以使用find_element()方法,该方法通过By来声明定位,并传入对应定位方法的定位参数。find_element()方法的语法格式如下。find_element定位find_element(by=By.ID,value=None)参数by表示元素定位的类型,由By提供,默认通过ID属性值来定位。参数value表示元素定位类型的属性值。在使用find_element()方法进行元素定位时,需要导入By类,具体如下。frommon.byimportBy多学一招find_element定位使用find_element()方法来定位元素的示例代码如下。driver.find_element(By.ID,"userA")driver.find_element(By.NAME,"passwordA")driver.find_element(By.CLASS_NAME,"telA")driver.find_element(By.TAG_NAME,"input")driver.find_element(By.LINK_TEXT,'访问新浪网站')driver.find_element(By.PARTIAL_LINK_TEXT,'访问')driver.find_element(By.XPATH,'//*[@id="emailA"]')driver.find_element(By.CSS_SELECTOR,'#emailA')多学一招find_element定位find_element_by_id()方法的底层实现方法如下。deffind_element_by_id(self,id_):"""Findsanelementbyid.:Args:-id\_-Theidoftheelementtobefound.:Usage:driver.find_element_by_id('foo')"""returnself.find_element(by=By.ID,value=id_)获取元素的常用信息2.62.6.1获取元素尺寸
先定一个小目标!掌握获取元素常用信息方法的使用,能够获取元素尺寸在Web自动化测试过程中,通过SeleniumWebDriver提供的size属性可获取元素尺寸,该属性的返回值是元素的高度和宽度。需要注意的是,在程序中使用size属性时,后边没有小括号,直接使用.size的方式即可。2.6.1获取元素尺寸搜索引擎下面以传智教育官网为例,详细介绍获取该官网首页的传智教育图标元素尺寸的步骤。首先在Chrome浏览器中打开传智教育官网,按“F12”
快捷键,可查看传智教育图标元素的实际尺寸,传智教育官网首页如下图所示。2.6.1获取元素尺寸搜索引擎2.6.1获取元素尺寸获取图标元素尺寸的具体代码如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()url="/"driver.get(url)#定位传智教育图标元素并使用size属性element=driver.find_element_by_xpath("/html/body/div[1]/div[2]/div[2]/div[1]/h1/a/img").sizeprint(element)2.6.2获取元素文本
先定一个小目标!掌握获取元素常用信息方法的使用,能够获取元素文本获取元素文本时可以利用SeleniumWebDriver提供的text属性,通过在程序中先定位到具体的元素,然后通过text属性就可以获取文本信息。需要注意的是,在程序中使用text属性时,后边没有小括号,直接使用.text的方式即可。2.6.2获取元素文本搜索引擎2.6.2获取元素文本下面演示通过text属性来获取传智教育官网首页的“关于传智”文本信息,具体代码如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()url="/"driver.get(url)#定位元素并使用text属性element=driver.find_element_by_partial_link_text("关于传智").textprint(element)2.6.3获取元素属性值
先定一个小目标!掌握获取元素常用信息方法的使用,能够获取元素属性值在进行Web自动化测试时,可以通过获取元素属性或判断元素是否可用等方式来判断测试用例的最终执行结果,下面主要对元素属性值获取、判断元素是否可用、判断元素是否可见和判断元素是否被选中进行详细介绍。2.6.3获取元素属性值搜索引擎2.6.3获取元素属性值在Web自动化测试中,可以通过获取元素的属性值进行断言。获取元素属性值的方法是get_attribute(),该方法的语法格式如下。get_attribute(name)#参数name表示元素的属性名1.元素属性值获取2.6.3获取元素属性值下面以传智教育黑马程序员社区页面为例,获取页面中“发帖”按钮的元素属性值,传智教育黑马程序员社区页面如下图所示。2.6.3获取元素属性值下面演示调用get_attribute()方法,获取“发帖”按钮元素属性名为title的属性值,具体代码如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()url="/?jingjiaczpz-PC-1"driver.get(url)#定位元素并调用get_attribute()方法post_button=driver.find_element_by_xpath("//*[@id='portal_block_417_content']/""div/div/a[1]").get_attribute("title")print(post_button)2.6.3获取元素属性值在Web自动化测试中,有时候需要判断页面中的按钮是否可以正常使用,可以通过调用is_enabled()方法来实现,该方法的语法格式如下。is_enable()2.判断元素是否可用2.6.3获取元素属性值下面以传智教育黑马程序员社区页面为例,调用is_enabled()方法判断签到”按钮元素是否可用,具体代码如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()url="/?jingjiaczpz-PC-1"driver.get(url)#定位"签到"按钮元素sign_in_button=driver.find_element_by_xpath("//*[@id='portal_block_417_content']""/div/div/a[2]")#判断元素是否可用并输出结果print(sign_in_button.is_enabled())2.6.3获取元素属性值在Web自动化测试中,也可以通过判断元素是否可见来进行断言。在程序中判断元素是否可见的方法是is_displayed(),该方法的语法格式如下。is_displayed()3.判断元素是否可见2.6.3获取元素属性值下面以传智教育黑马程序员社区页面为例,调用is_displayed()方法判断该页面中的黑马程序员图标是否可见,具体代码如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()url="/?jingjiaczpz-PC-1"driver.get(url)#定位黑马程序员图标元素hm_log=driver.find_element_by_xpath("//*[@id='Quater_bar']/div[2]/div[1]/h2/a/img")#判断元素是否可见并输出结果print(hm_log.is_displayed())2.6.3获取元素属性值在Web自动化测试中,判断元素是否被选中一般用于测试页面表单中的单选框和复选框。有些页面表单中的单选框和复选框是默认选中的,在程序中判断元素是否被选中可以调用is_selected()方法,该方法的语法格式如下。is_selected()4.判断元素是否被选中2.6.3获取元素属性值下面以TPshop(开源商城)项目为例,判断用户注册页面的“我已阅读并同意《TPshop网服务协议》”复选框元素是否被选中。如果该复选框元素被选中,返回结果为“True”,否则返回“False“。TPshop开源商城用户注册页面如下图所示。2.6.3获取元素属性值下面调用is_selected()方法判断用户注册页面的“我已阅读并同意《TPshop网服务协议》”复选框元素是否被选中,具体代码如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()url="http:///Home/user/reg.html"driver.get(url)#定位复选框元素check_box=driver.find_element_by_class_name("J_protocal")#判断元素是否被选中并输出结果print(check_box.is_selected())元素的常用操作2.72.7元素的常用操作
先定一个小目标!掌握元素的常用操作,能够实现测试页面的输入、清除等操作2.7元素的常用操作当页面中遇到想要输入元素内容的情况时,可以在自动化测试的脚本代码中调用send_keys()方法来自动输入元素的内容,该方法的语法格式如下。send_keys(*value)#参数*value表示输入的内容1.输入元素内容2.7元素的常用操作在Web自动化测试的过程中,如果想要清空页面的输入框或搜索框中的信息,可以通过在自动化测试的脚本代码中调用clear()方法来实现,该方法的语法格式如下。2.清除元素内容clear()2.7元素的常用操作在Web自动化测试的过程中,如果想要提交页面中的form表单或者模拟按下“Enter”键提交表单,可以在自动化测试的脚本代码中调用submit()方法来实现,该方法的语法格式如下。3.提交表单submit()2.7元素的常用操作下面以访问必应首页为例,演示如何在必应首页的输入框中输入元素内容、清空元素内容和提交表单,必应首页如下图所示。2.7元素的常用操作下面分别调用send_keys()方法、clear()方法和submit()方法,实现对输入框的输入、清除和提交表单操作,具体代码如下。fromseleniumimportwebdriverdriver=webdriver.Chrome()url="/"driver.get(url)#定位搜索框元素并输入内容input_box=driver.find_element_by_xpath("//input[@id='sb_form_q']")input_box.send_keys("软件")#清空搜索框内容input_box.clear()input_box.send_keys("软件测试")#提交表单input_box.submit()鼠标的常用操作2.82.8鼠标的常用操作
先定一个小目标!掌握鼠标的常用操作,能够实现鼠标单击、双击、拖动等操作鼠标的常用操作包括鼠标执行、鼠标单击、鼠标双击、鼠标拖曳和鼠标悬停,SeleniumWebDriver为这些鼠标操作提供了对应的方法。2.8鼠标的常用操作2.8鼠标的常用操作方法说明perform()鼠标执行,所有的鼠标操作都需要调用该方法才可以生效click()鼠标单击content_click()鼠标右键单击double_click()鼠标双击drag_and_drop(source,target)鼠标拖曳,第1个参数source表示源元素,即被拖动的元素,第2个参数target表示目标元素move_to_element()鼠标悬停常用的鼠标操作方法如下表所示。2.8鼠标的常用操作下面以京东商城首页为例,调用move_to_element()方法实现鼠标悬停在家用电器元素上,具体代码如下。fromseleniumimportwebdriverfrommon.action_chainsimportActionChainsdriver=webdriver.Chrome()driver.get("/")#定位家用电器元素house_device=driver.find_element_by_xpath("//*[@id='J_cate']/ul/li[1]/a")#创建鼠标对象action=ActionChains(driver)#调用鼠标悬停的方法action.move_to_element(house_device)#调用鼠标执行的方法action.perform()键盘的常用操作2.92.9键盘的常用操作
先定一个小目标!掌握键盘的常用操作,能够实现复制、粘贴、全选等操作在Web自动化测试的过程中,除了会对鼠标进行一些常用操作外,还会对键盘进行一些常用操作,例如复制、粘贴、全选等。键盘的这些常用操作在SeleniumWebDriver中都有对应的方法,这些方法都封装在Keys类中,所以在使用这些键盘操作方法之前首先需要导入Keys类,具体代码如下。2.9键盘的常用操作聚合平台frommon.keysimportKeys2.9键盘的常用操作方法说明send_keys(Keys.CONTROL,'a')表示全选(Ctrl+A)send_keys(Keys.CONTROL,'c')表示复制(Ctrl+C)send_keys(Keys.CONTROL,'x')表示剪切(Ctrl+X)send_keys(Keys.CONTROL,'v')表示粘贴(Ctrl+V)send_keys(Keys.BACK_SPACE)表示删除键(Backspace)send_keys(Keys.SPACE)表示空格键(Space)send_keys(Keys.TAB)表示制表键(Tab)send_keys(Keys.ESCAPE)表示回退键(Esc)send_keys(Keys.ENTER)表示回车键(Enter)常用的键盘操作方法如下表所示。2.9键盘的常用操作下面以京东商城首页为例,调用常用的键盘操作方法实现删除、全选、复制等操作,具体代码如下。[单击查看源码]浏览器的常用操作2.102.10.1浏览器窗口的设置
先定一个小目标!掌握浏览器的常用操作,能够设置浏览器窗口2.10.1浏览器窗口的设置在运行自动化测试脚本的时候,默认启动的浏览器窗口并不是全屏的。由于浏览器窗口的位置和大小会影响Web页面的显示效果,所以在编写脚本进行自动化测试的时候需要设置浏览器的窗口大小。为了能够使浏览器有一个良好的显示效果,通常设置浏览器窗口为最大化。在SeleniumWebDriver中提供了一些方法来设置浏览器窗口的最大化、最小化、指定位置和指定大小。2.10.1浏览器窗口的设置方法说明minimize_window()将浏览器窗口设置为最小化maximize_window()将浏览器窗口设置为最大化set_window_position(x,y)将浏览器窗口移动到指定位置set_window_size(width,height)将浏览器窗口设置为指定大小,第1个参数width用于设置窗口的宽度,第2个参数height用于设置窗口的高度set_window_rect(x=None,y=None,width=None,height=None)将浏览器窗口移动到指定位置,并将浏览器窗口设置为指定大小设置浏览器窗口的常用方法如下表所示。2.10.1浏览器窗口的设置下面以京东商城首页为例,调用设置浏览器窗口的常用方法来设置京东商城首页的浏览器窗口,具体代码如下。[单击查看源码]2.10.2浏览器的前进与后退
先定一个小目标!掌握浏览器的常用操作,能够实现浏览器的前进或后退操作2.10.2浏览器的前进与后退在使用浏览器访问网页的时候,通常会在浏览器的导航栏处单击“前进”或“后退”按钮来切换浏览的网页。如果要用代码自动实现浏览器“前进”或“后退”的操作,可以调用SeleniumWebDriver提供的forward()和back()方法。在程序中可以直接调用这两个方法,示例代码如下。driver.forward()#浏览器前进driver.back()#浏览器后退2.10.2浏览器的前进与后退fromseleniumimportwebdriverdriver=webdriver.Chrome()first_url='/'driver.get(first_url)second_url='/'driver.get(second_url)driver.back()print("调用后退方法,进入传智教育官网页面")driver.forward()print("调用前进方法,进入京东商城官网页面")下面以传智教育官网和京东商城官网页面为例,调用浏览器前进与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 专项纯净水品供应协议2024版
- 2025年影视基地场地合作经营协议书4篇
- 个人房产抵押贷款协议(2024版)版A版
- 2025年度城市更新违法建筑清拆合作协议4篇
- 专属定制体检服务协议版
- 二零二四塔吊司机劳动合同及劳动保护规定范本3篇
- 2025年影视基地场地租赁及影视制作服务协议4篇
- 2025年度智能安防产品区域代理销售合同12篇
- 2025年度厂房中央空调设备安装与售后服务一体化合同4篇
- 2025年度场海参产品绿色生产与环保认证合同4篇
- 软件项目应急措施及方案
- 2025河北邯郸经开国控资产运营管理限公司招聘专业技术人才5名高频重点提升(共500题)附带答案详解
- 2024年民法典知识竞赛考试题库及答案(共50题)
- 2025老年公寓合同管理制度
- 2024-2025学年人教版数学六年级上册 期末综合卷(含答案)
- 钣金设备操作培训
- 感染性腹泻的护理查房
- 中考英语688高频词大纲词频表
- 九年级初三中考物理综合复习测试卷3套(含答案)
- 管理制度评价表(填写模板)
- 工地设计代表服务记录
评论
0/150
提交评论