Robot Framework Selenium2/WebDriver 测试技术培训


@吴穹Adam Robot Framework + Robot Framework + Robot Framework + Robot Framework + Selenium2/Selenium2/Selenium2/Selenium2/WebDriverWebDriverWebDriverWebDriver 测试技术培训测试技术培训测试技术培训测试技术培训 © 2011 Agilean Copyright Reserved 2 Agenda • 基本概念 © 2011 Agilean Copyright Reserved 3 测试框架的职责 • 定义一种统一的方式来书写和组织测试用例(测试步骤, 测试数据与期待返回值); • 集成不同的测试驱动技术; • 控制测试用例的执行过程; • 生成测试报告和测试日志; © 2011 Agilean Copyright Reserved 4 Robot Framework方案概要 © 2011 Agilean Copyright Reserved 5 Robot Framework的特性 • 易于使用,采用表格式语法,统一测试用例格式; • 重用性好,可以利用现有关键字来组合新关键字; • 支持变量; • 支持创建基于数据驱动的测试用例。 • 结果报告和日志采用HTML格式,易于阅读; • 提供标签以分类和选择将被执行的测试用例; • 平台、应用无关; • 功能全面,支持WEB测试(Selenium)、Java GUI 测试, 启动线程、终端、SSH等; • 易于扩展,提供了简单API,用户可以自定义的基于Python 或者Java的测试库; • 易于集成,提供了命令行接口和基于XML的输出文件; • 易于与版本管理集成; © 2011 Agilean Copyright Reserved 6 Robot Framework方案 架构 BuiltinBuiltinBuiltinBuiltin DBDBDBDB © 2011 Agilean Copyright Reserved 7 Agenda • 基本概念 • 安装 © 2011 Agilean Copyright Reserved 8 安装 • 运行 –python-2.7.1.msi (需要本机管理员权限) • 请选择将Python加入Path –Python2.8-win32-unicode-2.8.11.0-py27.exe, –robotframework-2.6.3.tar • 解压到本地 • 用管理员帐户管理员帐户管理员帐户管理员帐户打开一个cmd • 在cmd中执行,python setup.py install –robotframework-ride-0.39.1.win32.exe –robotframework-selenium2library-0.5.2.win32.exe • 用Selenium2Library.zip替换[PythonDir]\Lib\site- packages\Selenium2Library的内容 • 执行 –[PythonDir]\Scripts\ride.py © 2011 Agilean Copyright Reserved 9 设置中文支持 • 在[PythonDir]\Lib\site-packages\robot\utils下的 encoding.py文件中,找到def _get_output_encoding(): 原来的编码是’cp437 ’ 将其改成’ cp936 ’(简体中 文,gbk) 。 © 2011 Agilean Copyright Reserved 10 IE8设置 • 需要以管理员身份运行IE,将所有四个四个四个四个区域的“启用保护 模式”选项清除,否则 WebDriver会报这个错误 © 2011 Agilean Copyright Reserved 11 Agenda • 基本概念 • 安装 • 创建测试用例 © 2011 Agilean Copyright Reserved 12 创建测试项目 • 测试项目可以目录或文件存储 • 格式可以用TXT, TSV或HTML格式 • 建议选择目录和TXT,这样便于管理 © 2011 Agilean Copyright Reserved 13 创建测试套 • 测试套也可以选择是文件还是目录 © 2011 Agilean Copyright Reserved 14 创建测试用例 © 2011 Agilean Copyright Reserved 15 关系总结 © 2011 Agilean Copyright Reserved 16 添加测试库 • 测试库提供针对特定应用的关键词 © 2011 Agilean Copyright Reserved 17 添加资源 • 资源提供定制公用关键词的能力 • 注意:资源也需要引用用到的Library © 2011 Agilean Copyright Reserved 18 关系总结 © 2011 Agilean Copyright Reserved 19 增加自定义关键词 © 2011 Agilean Copyright Reserved 20 增加自定义关键词 © 2011 Agilean Copyright Reserved 21 增加自定义关键词 • F5可以搜索关键词 红色表明需要输入参数 © 2011 Agilean Copyright Reserved 22 在测试用例里面引用资源 • 测试用例用到的资源,需要在测试套里面直接引用 © 2011 Agilean Copyright Reserved 23 引用自定义关键词 • F5可以查找关键词 • 匹配的关键词会显示为蓝色 © 2011 Agilean Copyright Reserved 24 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 © 2011 Agilean Copyright Reserved 25 执行测试 © 2011 Agilean Copyright Reserved 26 按Tag执行 • 测试用例可以标记多个Tag • 可以按Tag来执行或跳过用例 © 2011 Agilean Copyright Reserved 27 测试日志 • 测试日志按树形组织 • 可自动提供错误步骤的屏幕截图 © 2011 Agilean Copyright Reserved 28 其他可用调试手段 • 拷屏 –Capture Page Screenshot | filename=None • 将页面内容加入Log –Log Location –Log Source | loglevel=INFO –Log Title • Log特定信息(Built In Library) • Log变量(Built In Library) © 2011 Agilean Copyright Reserved 29 测试报告 • 底色表示成功与失败 © 2011 Agilean Copyright Reserved 练习一 • 建立测试用例 • 查看测试报告 30 © 2011 Agilean Copyright Reserved 31 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium2Library © 2011 Agilean Copyright Reserved 32 内置关键词 • Selenium Library将WebDriver与Robot Framework连接起 来 • Selenium2Library提供了非常多的内置关键词 • 可以使用F5或以下链接来学习 © 2011 Agilean Copyright Reserved 浏览器操作 • Selenium2Lib提供了与浏览器交互的关键词: –Open Browser –Maximize Browser Window –Go To –Go Back –Reload Page –Close Window –Close Browser –Close All Browsers 33 © 2011 Agilean Copyright Reserved 34 常用关键词 • 点击 –Click Button | locator –Click Element | locator –Click Image | locator –Click Link | locator –Double Click Element | locator –有时在IE中,Click不起作用,可以用如下命令来替代 • Press Key | | \\13 或\\10 © 2011 Agilean Copyright Reserved 35 定位元素 • Locator –可以id或name来用定位界面元素 –也可以使用XPath或Dom,但是,必须用XPath=或Dom=来开头 • 最好使用id来定位,强烈建议强制要求开发为所有需要交 互的界面元素设定id,所以,locator最好以 id=,name=,identifier= © 2011 Agilean Copyright Reserved 定位元素 • 也可以应用 Assign Id To Element关键词来为没有ID的元素 指定一个ID 36 © 2011 Agilean Copyright Reserved 定位元素 • 有时,需要先进入一个frame或iframe再定位一个元素,这 样效率更高,可以使用如下两个关键词 –进入一个frame或iframe • Select Frame | locator –回到最上层frame或iframe • Unselect Frame 37 © 2011 Agilean Copyright Reserved 定位元素 • 可见性问题 –Selenium2要求交互的元素必须是可见的,其判定逻辑如下: • 对于Option或OptGroup,判断包含它的Select是否可见?; • 对于Area,判断包含它的Map是否可见? • 对于Map,判断MapImage是否可见? • hidden input不可见; • NoScript不可见; • hidden visibility不可见; • displayed=‘none’或任何祖先元素的displayed=‘none’, 则元素不可见; • 长宽为零,并且没有长宽不为零的子孙的元素不可见 38 © 2011 Agilean Copyright Reserved 定位元素 • 可见性问题 –需要特别注意这一条,因为IE有一个缺陷使得即便display=“none” 的元素依然可见, http://www.positioniseverything.net/explorer/ienondisappear contentbugPIE/index.htm • display=‘none’或任何祖先元素的display=‘none’,则元 素不可见; 39 © 2011 Agilean Copyright Reserved 40 常用关键词 • 输入 –Input Password | locator | text –Input Text| locator | text –有时会出现输入之后界面没有的问题,可以用如下命令来触发页面 更新 • Press Key | | \\13 或\\10 © 2011 Agilean Copyright Reserved 41 常用关键词 • 按键 –Press Key | locator | key –例子 • Press Key | text_field | q | • Press Key | login_button | \\13 | # ASCII code for –特殊编码 • 0: Keys.NULL, • 8: Keys.BACK_SPACE, • 9: Keys.TAB, • 10: Keys.RETURN, • 13: Keys.ENTER, • 24: Keys.CANCEL, • 27: Keys.ESCAPE, • 32: Keys.SPACE, • 42: Keys.MULTIPLY, • 43: Keys.ADD, • 44: Keys.SEPARATOR, • 45: Keys.SUBTRACT, • 56: Keys.DECIMAL, • 57: Keys.DIVIDE, • 59: Keys.SEMICOLON, • 61: Keys.EQUALS, • 127: Keys.DELETE © 2011 Agilean Copyright Reserved 42 定位元素 • 可以使用FireFox Firebug或IE8来辅助定位 © 2011 Agilean Copyright Reserved 43 更新例子 • 创建更多关键词 © 2011 Agilean Copyright Reserved 44 更新例子 • 扩展测试用例 © 2011 Agilean Copyright Reserved 45 检查结果 • 验证页面是否包含相应结果 –Page • Page Should(Not)Contain Button • Page Should(Not)Contain Checkbox • Page Should(Not)Contain Element • Page Should(Not)Contain Image • Page Should (Not)Contain Link • Page Should (Not)Contain List • Page Should(Not)Contain Radio Button • Page Should(Not)Contain Textfield –Location & Title • Location Should Be • Location Should Contain • Title Should Be © 2011 Agilean Copyright Reserved 46 检查结果 • 验证页面是否包含相应结果 –Text • Current Frame Contains • Page Should Contain • Page Should Not Contain • Textfield Value Should Be –Element • Element Should Be Disabled • Element Should Be Enabled • Element Should Be Visible • Element Should Contain • Element Should Not Be Visible • Element Text Should Be © 2011 Agilean Copyright Reserved 47 检查结果 • 验证页面是否包含相应结果 –List • List Selection Should Be • List Should Have No Selections –Checkbox • Checkbox Should Be Selected • Checkbox Should Not Be Selected –Radio Button • Radio Button Should Be Set To • Radio Button Should Not Be Selected © 2011 Agilean Copyright Reserved 48 检查结果 • 验证页面是否包含相应结果 –Table • Table Cell Should Contain • Table Column Should Contain • Table Footer Should Contain • Table Header Should Contain • Table Row Should Contain • Table Should Contain • Textfield Should Contain –Xpath • Xpath Should Match X Times © 2011 Agilean Copyright Reserved 49 等待页面加载 • 默认情况下, Selenium2会自动等待页面加载完成 • 对于页面AJAX可以使用如下等待页面的关键词: –Wait For Condition | condition | timeout=None | error=None –Wait Until Page Contains | text | timeout=None | error=None –Wait Until Page Contains Element | locator | timeout • 一种调试时可以使用,但是不应该留下来的 –Sleep x –Sleep关键词是Robot Framework Built In Library提供的, http://robotframework.googlecode.com/hg/doc/libraries/Built In.html?r=2.6.1 © 2011 Agilean Copyright Reserved 和其他界面元素交互 • Selenium2Lib提供了和其他界面元素交互的关键词: – Element • Focus 聚焦 • Simulate 模拟时间触发 • Open Context Menu 打开 – List • Select All From List • Select From List • Unselect From List – Checkbox • Select Checkbox • Unselect Checkbox – Radio Button • Select Radio Button – Form • Submit Form • Choose File (For File Upload) 50 © 2011 Agilean Copyright Reserved 练习二 • 更新测试用例 51 © 2011 Agilean Copyright Reserved 52 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 © 2011 Agilean Copyright Reserved 53 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 –注意:界面元素id不算数据,不应分离 © 2011 Agilean Copyright Reserved 54 更新例子 • 增加一个新的测试用例 这样好吗? © 2011 Agilean Copyright Reserved 55 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 © 2011 Agilean Copyright Reserved 56 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 © 2011 Agilean Copyright Reserved 57 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读, 避免复杂逻辑 © 2011 Agilean Copyright Reserved 58 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读, 避免复杂逻辑 © 2011 Agilean Copyright Reserved 59 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读,避免复杂逻辑 问题:“登录” Keyword应该在这里吗? © 2011 Agilean Copyright Reserved 60 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读,避免复杂逻辑 • 建立测试用例分层架构,并坚守 © 2011 Agilean Copyright Reserved 61 测试用例的层次架构(实例) 测试用例测试用例测试用例测试用例 = 测试流程模板 + 测试数据 测试流程模板测试流程模板测试流程模板测试流程模板 = 测试流程构件的排列 测试流程构件测试流程构件测试流程构件测试流程构件 = 测试流程步骤的排列 测试流程步骤测试流程步骤测试流程步骤测试流程步骤 = 界面交互细节 © 2011 Agilean Copyright Reserved 练习三 • 分层测试用例架构 62 © 2011 Agilean Copyright Reserved 63 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 • 使用变量 © 2011 Agilean Copyright Reserved 64 使用变量 • 使用变量来实现测试目标可变 © 2011 Agilean Copyright Reserved 65 使用变量 • 使用变量来实现测试目标可变 –运行时可以指定变量取值切换不同环境 © 2011 Agilean Copyright Reserved 66 使用变量 • 使用变量来实现测试目标可变 –运行时可以指定变量取值切换不同环境 © 2011 Agilean Copyright Reserved 67 使用变量 • 可以使用变量来获得界面返回值,用于验证 –需要注意关键词里面的返回值变量只在关键词之内有效, –可以通过如下关键词来提升变量的可见范围,但是最好只提升到 Test级别,因为测试用例最好是相互独立的 © 2011 Agilean Copyright Reserved 获取页面信息 • 相关关键词有: –Page • Get Title • Get Location • Get Source • Get Matching Xpath Count –Element • Get Element Attribute • Get Value • Get Text (Added By Adam Wu) –Link • Get All Links 68 © 2011 Agilean Copyright Reserved 获取页面信息 • 相关关键词有: –Table • Get Table Cell –List • Get List Items • Get Selected List Label • Get Selected List Labels • Get Selected List Value • Get Selected List Values 69 © 2011 Agilean Copyright Reserved 70 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 • 使用变量 • 设置Timeout © 2011 Agilean Copyright Reserved 71 设置Timeout • Suite和Test都可以设定Timeout,这限定了测试用例的最 长执行时间,因此,需要预留合适的时间,否则,可能导 致测试不稳定 © 2011 Agilean Copyright Reserved 72 设置Timeout(需要被更新) • Timeout也可以通过如下Keyword来设置( –Get Selenium Timeout –Set Selenium Timeout • Selenium执行速度 –Get Selenium Speed –Set Selenium Speed © 2011 Agilean Copyright Reserved 73 敏捷测试 - 写好自动化测试用例的原则 • 要做到流程和数据的分离 • 通过不断抽象,消除冗余 • 测试用例应尽量简单易读,避免复杂逻辑 • 建立测试用例分层架构,并坚守 • 自动化测试用例必须非常健壮,避免误报 © 2011 Agilean Copyright Reserved 74 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 • 使用变量 • 设置Timeout • 敏捷测试过程 © 2011 Agilean Copyright Reserved 75 Scrum Process FrameworkScrum Process FrameworkScrum Process FrameworkScrum Process Framework Product Owner Scrum Master Developers, Testers, .. + Manager/Lead ReleaseReleaseReleaseRelease PlanPlanPlanPlan MeetingMeetingMeetingMeeting ReleaseReleaseReleaseRelease Arch DesignArch DesignArch DesignArch Design WorkshopWorkshopWorkshopWorkshop SprintSprintSprintSprint PlanPlanPlanPlan MeetingMeetingMeetingMeeting SprintSprintSprintSprint ReviewReviewReviewReview SprintSprintSprintSprint RetrospectiveRetrospectiveRetrospectiveRetrospective © 2011 Agilean Copyright Reserved 76 迭代过程中的测试(A-TDD) © 2011 Agilean Copyright Reserved 77 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 • 使用变量 • 设置Timeout • 敏捷测试过程 © 2011 Agilean Copyright Reserved 78 Agenda • 基本概念 • 安装 • 创建测试用例 • 执行测试 • 使用Selenium Library • 数据驱动的测试与测试用例的架构 • 使用变量 • 设置Timeout • 敏捷测试过程 • 进阶问题 © 2011 Agilean Copyright Reserved 79 进阶问题 • 选择式输入与日期处理 © 2011 Agilean Copyright Reserved 80 选择式输入与日期处理 • 在界面当中,有许多信息使用选择方式来输入,如年龄, 日期,密码等等; • 如下面界面,当出发点击事件,就会弹出一个动态的div层, 就是看到的“下拉框”。 • 可以用如下方式直接赋值来进行选择: –input text //select[@id='registeredAgePeriod'] 03 © 2011 Agilean Copyright Reserved 81 选择式输入与日期处理 • 对于有些日期输入框,也可以直接调用JavaScript –注意这里window.一定要写不能省略 © 2011 Agilean Copyright Reserved 82 选择式输入与日期处理 • 很多时候输入的日期值,需要根据当前日期计算 • 可以利用BuildIn Library里面的Get Time来解决 © 2011 Agilean Copyright Reserved 83 进阶问题 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 © 2011 Agilean Copyright Reserved 84 等待AJAX返回结果 • 定位AJAX会动态更新的页面内容 • 定义一个等待动态加载完成的关键词 © 2011 Agilean Copyright Reserved 85 等待AJAX返回结果 • 等待界面返回,可以利用Built In Library里面的Wait Until Keyword Succeeds关键词 © 2011 Agilean Copyright Reserved 86 进阶问题 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 © 2011 Agilean Copyright Reserved 87 切换窗口 • 如果测试用例打开了多个窗口或多个Frame,可以用如下关 键词来进行切换: • 如果打开新窗口的时间不确定,可以结合Wait Until Keyword Succeeds关键词,以确保切换窗口成功 © 2011 Agilean Copyright Reserved 切换窗口 • 另外,可以使用如下关键词来获取所有当前打开窗口的信 息,方便调试 –Get Window Identifiers –Get Window Names –Get Window Titles 88 © 2011 Agilean Copyright Reserved 89 进阶问题 • JQuery支持 • Flex支持 • Firefox Profiles支持 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 © 2011 Agilean Copyright Reserved 90 模式对话框的处理 • 在Selenium2/IE中,模式对话框就和一个普通窗口一样, 只需用Select Window结合Wait Until Keyword Succeeds 切换过去即可,在模式对话框关闭之后再用Select Window 结合Wait Until Keyword Succeeds切换回主窗口即可 © 2011 Agilean Copyright Reserved 91 Confirm的处理 • Selenium会修改页面JS代码,所以不会有实际的弹出窗口 • 可以调用如下关键词判断是否执行了弹出动作以及内容是 否符合预期 • 其实这里Confirm Action不会进行点击动作,而只是会去 获取需要确认的内容,但是如果不调用Confirm Action, 后面就会报错了; • 而Choose Cancel on Next Confirmation就是规定下一次 Confirm选择Cancel © 2011 Agilean Copyright Reserved 92 Alert的处理 • Alert的处理 © 2011 Agilean Copyright Reserved 93 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 © 2011 Agilean Copyright Reserved 94 模拟Windows动作 • Robot Framework还有一个AutoItLibrary, 提供了一些操作Windows界面的关键词,安 装方式如下: –安装Python Windows Extension(pywin32- 216.win32-py2.7.exe)(需要本机管理员权限) –之后,解压AutoItLibrary-1.1.zip到任意目录, 然后在目录下执行 • setup.py install • 注意: –在Win 7或Windows Server上 –以你的有管理员权限的用户登录 » 而不要直接用Administrator账号登录 –要以管理员身份打开命令行窗口 –再执行setup.py © 2011 Agilean Copyright Reserved 模拟Windows动作 • 安装之后需要将AutoItLibrary的两个相关目录的只读限制 清除,否则,使用RIDE时会抛异常;另外可能没法Search Keyword; 95 © 2011 Agilean Copyright Reserved 96 模拟Windows动作 • 如果用Administrator执行了setup.py install, 那么使用 其他用户使用AutoIt时,会报这个错误 – >>> Don't think we need to unregister the old one... – Traceback (most recent call last): – File "C:\Python27\Lib\site- packages\pythonwin\pywin\framework\scriptutils.py", line 325, in RunScript exec codeObject in __main__.__dict__ – File "C:\pathon2.7.1\AutoItLibrary-1.1\setup.py", line 63, in shutil.copyfile("3rdPartyTools/AutoIt/AutoItX3.dll", instFile) – File "C:\Python27\lib\shutil.py", line 81, in copyfile with open(src, 'rb') as fsrc: – IOError: [Errno 2] No such file or directory: '3rdPartyTools/AutoIt/AutoItX3.dll ‘ • 这时需要删除AutoIt Library目录,同时用regedt32情况 注册表里面所有和AutoIt项目的信息 © 2011 Agilean Copyright Reserved 97 模拟Windows动作 • 使用时需要Import AutoItLibrary • 关键词列表请见 –http://robotframework- autoitlibrary.googlecode.com/svn/tags/robotframework- AutoItLibrary-1.0/doc/AutoItLibrary.html © 2011 Agilean Copyright Reserved 98 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 • String和Collection支持 © 2011 Agilean Copyright Reserved 99 • Robot Framework内置提供了String Library –Fetch From Left –Fetch From Right –Generate Random String –Get Line –Get Line Count –Get Lines Containing String –Get Lines Matching Pattern –Get Lines Matching Regexp –Get Substring String支持 –Replace String –Replace String Using –Should Be Lowercase –Should Be String –Should Be Titlecase –Should Be Uppercase –Should Not Be String –Split String –Split String From Right –Split To Lines © 2011 Agilean Copyright Reserved 100 Collection支持 • Append To List · Combine Lists · Convert To List · Copy Dictionary · Copy List · Count Values In List · Create Dictionary · Dictionaries Should Be Equal · Dictionary Should Contain Key · Dictionary Should Contain Sub Dictionary · Dictionary Should Contain Value · Dictionary Should Not Contain Key · Dictionary Should Not Contain Value · Get Dictionary Items · Get Dictionary Keys · Get Dictionary Values · Get From Dictionary · Get From List · Get Index From List · Get Slice From List · Insert Into List · Keep In Dictionary · List Should Contain Sub List · List Should Contain Value · List Should Not Contain Duplicates · List Should Not Contain Value · Lists Should Be Equal · Log Dictionary · Log List · Remove From Dictionary · Remove From List · Remove Values From List · Reverse List · Set List Value · Set To Dictionary · Sort List © 2011 Agilean Copyright Reserved 101 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 • String和Collection支持 • Cookie支持 © 2011 Agilean Copyright Reserved Cookies操作 • Selenium2Lib提供了如下关键词来操作Cookie: –Delete All Cookies –Delete Cookie –Get Cookie Value –Get Cookies 102 © 2011 Agilean Copyright Reserved 103 Selenium Library进阶 • 日期处理 • 等待AJAX返回结果 • 切换窗口 • Alert处理和模式对话框 • 模拟Windows动作 • String和Collection支持 • Cookie支持 • 鼠标动作 © 2011 Agilean Copyright Reserved Cookies操作 • Selenium2Lib提供了如下关键词来操作鼠标: –Get Vertical Position –Get Horizontal Position –Mouse Down –Mouse Down On Image –Mouse Down On Link –Mouse Out –Mouse Over –Mouse Up 104 © 2011 Agilean Copyright Reserved 失败处理 • 提供了如下关键词进行错误处理 • Register Keyword To Run On Failure • 例如,可以根据执行结果自动调整Tag 105 © 2011 Agilean Copyright Reserved 106 其他进阶话题 • JQuery支持 • Flex支持 • Firefox Profiles支持 • Remote Library • DB Library © 2011 Agilean Copyright Reserved 老用例迁移 • 在用例中, 将所有Import Library | Selenium Library 都换成Import Library | Selenium2LibrarySelenium2LibrarySelenium2LibrarySelenium2Library • 删除Start Selenium Server | Stop Selenium Server • 删除Click XXX | | dont_wait中的dont_wait 107 Q&AQ&AQ&AQ&A © 2011 Agilean Copyright Reserved 109 • Call Method · Catenate · Comment · Convert To Binary · Convert To Bo olean · Convert To Hex · Convert To Integer · Convert To Number · Co nvert To Octal · Convert To String · Create List · Evaluate · Exit F or Loop · Fail · Fatal Error · Get Count · Get Length · Get Library Instance · Get Time · Get Variable Value · Get Variables ·· Impor t Variables · Keyword Should Exist · Length Should Be ·· No Operati on · Regexp Escape · Remove Tags · Repeat Keyword · Replace Variabl es · Run Keyword · Run Keyword And Continue On Failure · Run Keyword A nd Expect Error · Run Keyword And Ignore Error · Run Keyword If · Run Keyword If All Critical Tests Passed · Run Keyword If All Tests Passed · Run Keyword If Any Critical Tests Failed · Run Keyword If Any Tests Faile d · Run Keyword If Test Failed · Run Keyword If Test Passed · Run Keyw ord If Timeout Occurred · Run Keyword Unless · Run Keywords · Set Glo bal Variable · Set Library Search Order · Set Log Level · Set Suite Va riable · Set Tags · Set Test Message · Set Test Variable · Set Varia ble · Set Variable If · Should Be Empty · Should Be Equal · Should Be Equal As Integers · Should Be Equal As Numbers · Should Be Equal As Str ings · Should Be True · Should Contain · Should Contain X Times · Sh ould End With · Should Match · Should Match Regexp · Should Not Be Emp ty · Should Not Be Equal · Should Not Be Equal As Integers · Should No t Be Equal As Numbers · Should Not Be Equal As Strings · Should Not Be T rue · Should Not Contain · Should Not End With · Should Not Match · S hould Not Match Regexp · Should Not Start With · Should Start With · V ariable Should Exist · Variable Should Not Exist ·
还剩108页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 2 人已下载

下载pdf

pdf贡献者

skyking

贡献于2012-09-17

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf