Ⅰ.8 如何实现原生浏览器对话框、ActiveX以及更多项的自动化
来源:互联网 发布:购买小提琴知乎 编辑:程序博客网 时间:2024/06/09 19:34
Squish主要是设计用来支持自动化的操作网页的DOM,DHTML和HTML元素。但是为了完整的测试一个网页应用程序,通常有必要使对其他类型组件的操作自动化,也包括对话框——这个部分展示了用于执行这种测试的技术。
Ⅰ.8 .1 使原生浏览器对话框自动化(登录,验证,等等)
许多网页应用程序需要一个登录,该登陆使用了浏览器的原生身份验证对话框,或者作为开启进程的一部分接受验证。Squish让这种自动化的登录和接受验证成为可能。
Ⅰ.8.1.1 使一个原生登录自动化
Squish提供了一个自定义函数,在测试脚本中调用它可以使浏览器的原生身份验证对话框的登录自动化。使用它的关键是开区一个登录进程(一般通过点击一个按钮或者链接),然后等待登录对话框出现,然后输入用户名和密码。下面是一个代码片段,展示了如何操作的:
clickLink(":Login_A")waitFor("isBrowserDialogOpen()")automateLogin(tester_username,tester_password)上述代码假设 tester_username 和 tester_password 是存储了tester的用户名和密码的变量。Squish的automateLogin 函数使Squish支持的浏览器的原生浏览器身份验证对话框自动化,因此你自己不必为浏览器的差异化做任何事情。
特定的Mac OS X
在Mac OSX上,当你使用 automateLogin 函数时,你必须在System Preference中打开Universal Access。
Ⅰ.8.1.2 使接受验证自动化
依赖于你所使用的哪款网页浏览器实现自动化的接受一个验证。这个部分解释了为使每个Squish支持的网页浏览器实现自动化我们需要做些什么。
Ⅰ.8.1.2.1 IE 6或者之后的版本
当在IE下运行一个测试时,自动化的接受一个验证的唯一必须的步骤是永远只接受一次。这必须通过手动实现。在这之后,每此测试运行期间Squish将会通知IE使用已被接受的验证,并且不需要更多的手动干预。
Ⅰ.8.1.2.2 Mozilla Firefox
在Firefox中,为了接受一个验证,你必须将一些代码添加到测试脚本中以使浏览器对话框自动化的接受验证。另外,有必要对一个将会使测试案例挂起的问题采取临时措施。为了做这些,首先必须加载一个临时的地址,然后读取可被加载的地址。
下面的例子展示了如何自动化连接到一个HTTPS 地址,以及接受验证。
# Workaround: Load a temporary page firstloadUrl("http://www.froglogic.com")#Now load the real pageloadUrl("https://the.real.site.you.want.to.load")if Browser.type() == Crowser.Firefox: # Accept the certificate waitFor("isBrowserDialogOpen()") nativeType("<Return>") snooze(1) # Accept the second certificate dialog nativeType("<Left>") nativeType("<Return>") waitFor("not is BrowserDialogOpen()") rehook()加载临时的页面只是一个不幸的——但很不明显的——必要性。一旦加载了页面,Firefox使用了两份对话框来完成验证的接受,因此我们必须与它们两个交互以完成接受。我们使用了nativeType 函数来模拟键盘交互,这里正常情况下我们会使用 type 函数。同样,在与对话框交互之后我们必须调用 rehook 函数让Squish做一些重载和重新初始化工作来计数,因为已经接受了验证,作为结果网页是在不同的状态。
Ⅰ.8.1.2.3 Safari
当在Safari下运行一个测试时需要自动化的接受验证的唯一步骤是永远只接受一次。这必须通过手动实现:首先,打开Safari的验证页面,然后选择浏览弹出表格中验证的细节,然后检查checkbox,在重连时该checkbox通知Safari总是信任验证。之后,Squish将会通知Safari在每个运行的测试中使用已接受的验证,不需要更多的人工干预。
Ⅰ.8.2 ActiveX
Squish支持自动化交互和测试非HTML/DOM 元素,即native 对象,这些都被嵌入在网页中。在一个相当抽象的水平实现的,就是意味着可以巨鹿和回放鼠标和输入的文本。另外,可以使用Spy工具检查嵌入的native对象,以及为这些native 对象插入verification 。在测试脚本中可以访问一个native 对象的所有公开属性。
Windows 和 IE-specific: ActiveX
ActiveX 是Windows-specific技术,因此其他平台不支持。Squish的Qt版本支持ActiveX,Squish的Web版本也支持——但是后者只限于在IE中。
- Ⅰ.8 如何实现原生浏览器对话框、ActiveX以及更多项的自动化
- 如何进行更智能的自动化测试?
- 原生JS如何更准确的获取CSS样式
- ActiveX交互时浏览器的设置以及ActiveX控件注册的检测
- 基于对话框的ActiveX控件开发以及MFC对话框调用点击无响应问题
- 1.事件委托的原理以及优缺点 2. 手写原生js实现事件代理,并要求兼容浏览器
- 1.事件委托的原理以及优缺点 2. 手写原生js实现事件代理,并要求兼容浏览器
- 基于ActiveX和Applet的影像浏览器的实现
- jquery以及原生js 如何实现div倒序
- MFC基于对话框的ActiveX
- MFC基于对话框的ActiveX
- 创建添加对话框的Activex
- 如何修改5.0中原生浏览器的搜索引擎
- 如何绕过浏览器的限制让原生调用js
- showModalDialog模态对话框的使用以及浏览器兼容
- showModalDialog模态对话框的使用详解以及浏览器兼容
- 原生JS实现跨浏览器的事件处理程序
- 微信内置浏览器图片查看方式的原生实现
- Unity3D-FSM有限状态机的简单设计
- Android之EventBus的使用
- Cocoa 框架
- Spring4快速入门第一章HelloWorld
- android studio使用教程(六) project和module gradle脚本查看
- Ⅰ.8 如何实现原生浏览器对话框、ActiveX以及更多项的自动化
- iOS 跳转
- Mac OS X El Capitan系统完整性保护System Integrity Protection (SIP)
- VS2012 + OPENCV249 建立属性表配置配
- 监视电池电量和充电状态
- datetime和timestamp区别
- git操作详解(阮一峰)
- Android屏幕适配全攻略(最权威的官方适配指导)
- SpringMVC注解分析01-RequestMapping