selenium 用法,Selenium2Library

  selenium 用法,Selenium2Library

  我学习python selenium已经有一段时间了,所以我想分享一些与在WEB自动化中使用selenium相关的概念和用法。1.安装Python和Selenium包。

  安装Python:在不同平台上安装Python。Selenium:pip 3 install-u Selenium py charm可以安装在http://python.org/download/.设置:使用社区版,配置Python解释器2,Selenium WebDriver的基于Python的实例脚本(演示)

  Selenium WebDriver的方法只有从Selenium包中导入WebDriver才能使用;2)选择一个浏览器驱动实例,它会提供几个端口来调用Selenium命令与浏览器交互;3)设置隐式等待时间10s,定义Selenium的执行步骤超时;4)调用driver.get()方法来访问应用程序。方法被调用后,WebDriver会一直等到页面加载完毕,然后继续执行脚本;5)Selenium WebDriver提供了多种定位和操作这些元素的方法,如设置值、点击按钮、在下拉组件中选择选项等。在此使用find_element_by_id定位搜索输入框;此方法将返回id属性值与输入参数匹配的第一个元素;(HTML元素由标签和属性定义)6)通过send_keys()方法输入新的特定值,调用submit()提交搜索请求;7)加载搜索结果页面,我们读取结果列表的内容并打印出来;通过find_elements_by_xpath获取所有路径满足class=c-abstract 的div标签,它会返回多个元素列表;8)最后,我们打印并获取标签的文本内容;在脚本的最后,我们可以使用driver.quit()关闭浏览器;3.使用unittest编写单元测试和Selenium WebDriver测试。

  实现测试前条件、测试后条件、比较预期结果和实际结果、检查程序状态、生成测试报告、创建黑盒测试等功能;1)测试夹具:通过使用测试夹具,可以定义单个或多个测试执行前的准备工作,以及测试执行后的清理工作;2)测试用例:unittest中执行测试的最小单元,通过验证unittest提供的assert方法来验证一组特定操作和输入后的响应;Unittest提供了一个名为TestCase的基本类,可以用来创建测试用例;3)测试套件:测试套件是多个测试或测试用例的集合,是为被测程序的相应功能和模块创建的一组测试。测试套件中的测试用例将一起执行;4)测试运行器:测试运行器负责调度测试执行,并向用户生成测试结果;测试执行人员可以使用图形界面、文本界面或者特定的返回值来展示测试执行结果;5)测试报告:测试报告显示所有执行案例的成功或失败状态的汇总;包括失败测试步骤的预期结果和实际结果,以及整体运行状态和运行时间的汇总;6)一般测试分为三个部分,即3A的安排:初始化前提条件、初始化被测对象、相关配置和依赖关系;动作:进行功能操作;断言:用于检查实际结果与预期结果是否一致;4.用TestCase类实现一个测试。

  1)我们将通过集成TestCase类并为测试类中的每个测试添加测试方法来创建单个测试或一组测试;测试用例由excel维护并参数化,通过自定义context管理的类来匹配和替换excel中的参数来操作excel;2) assert方法常用于2)TestCase,主要任务是调用assertEqual()检查结果;AssertTrue()来验证条件;AssertRaises验证预期的异常;使用第三方库pymysql(Mysql)查询sql和TestCase的返回值进行匹配验证;操作过程中重要的返回结果会被调用logger记录下来,以便快速定位问题;3)除了添加测试,还可以添加测试夹具、setUp()方法和tearDown()方法;4)从setUp()方法执行一个测试用例,所以在每次测试开始之前可以执行一些初始化任务;此方法没有参数,也没有返回值;5)然后编写测试方法,命名为测试开始。这个命名约定通知测试运行程序哪个方法代表测试方法;6)值得注意的是,test runner所能找到的每一个测试方法,都会在执行测试方法之前先执行setUp()方法,这有助于保证每一个测试方法都能依赖于相同的环境;7)测试执行完成后将调用7)tearDown()方法来清理所有初始值;8)最后运行测试:为了通过命令行测试,我们可以在测试中添加对main方法的调用;9)优化:为了让每个测试方法共享一个实例,我们可以创建类级的setUp()和tearDown()方法:1)它们由setUpClass()方法、tearDownClass()方法和@classmethod标识实现;2)这两个方法在类级别初始化数据,而不是方法级别初始化;5.了解unittest提供的不同断言方法。

  断言:unittest的TestCase类提供了很多实用的方法来检查预期结果与实际结果是否一致;以下是常用的集中式断言:assertEqual(a,b [,msg]);assertNotEqual(a,b [,msg]);assertTrue(x [,msg]);assertFalse(x [,msg]);assertIsNot,b [,msg]);assertRaises(exc,fun,*args,* * kwds);6.为一组测试创建测试套件

  通过应用unittest的TestSuites特性,可以将不同的测试分组到一个逻辑组中,然后通过一个命令就可以设置和执行一个统一的测试套件。它由TestSuites、TestLoader和TestRunner类实现。我们使用TestSuites类来定义和执行测试套件,并向一个测试套件添加多个可测试性。测试套件也用TestLoader和TextTestRunner创建和运行;7.使用unittest扩展生成HTML格式的测试报告

  8.如何定位元素?

  1)搜索一个商品,需要先找到搜索框和搜索按钮,然后通过键盘输入要查询的关键词,最后用鼠标点击搜索按钮提交搜索请求;2)Selenium提供了许多find_element_by方法来定位页面元素。如果页面元素定位正常,则返回对应的WebElement实例;否则会抛出NoSuchElementException的异常;3)八种find_element_by方法:—— find _ element _ by _ id()3354 find _ element _ by _ name()3354 find _ element _ by _ tag _ name()3354 find _ element _ by _ XPath()—— find _ element _ by _ CSS _ selector()3354 find _ element _ by _ link _ text()# 标签之间的文本信息3354 find _ element _ by _ partial _ link _ text()4)八个find_elements_by方法根据一定的条件返回一组元素:—— find _ elements _ by _ id()3354 find _ elements _ by _ class _ name()—— find _ elements _ by _ tag _ name()—— find _ elements _ by _ XPath()—— find _ elements _ by _ CSS _ selector()33333 这是通过ID、名称和类属性来查找元素的最常见、最快速的方法。您还可以增加测试用例断言元素的可用性:

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: