一般故障排除

本节提供了对象识别限制的原因与Ranorex工具的概述,并提供一些纠正故障的方法和建议。

  • .NET WinForms
  • .NET Silverlight
  • Flash/Flex Applications
  • Win32 Based Applications
  • Browser (Mozilla Firefox, Google Chrome, Apple Safari)
  • Image Related Automation or Validation
  • Geometry Related Issues
  • Windows Apps (aka Windows 8 UI Apps)
  • Other Software

.NET WinForms

Ranorex程序集中没有加载包含这种控件的定义。对这种UI元素的控制识别能力是有限的。对.NET的WinForms应用程序或控件的支持之所以是有限的,有可能是以下几个原因:

原因1:

自动化进程(Ranorex executable) 和自动化应用程序(AUT)不是使用相同的安全权限启动的,即使用不相同的Windows用户。

解决方法:

尝试使用同一个用户来启动应用程序。

原因2:

无论是自动化测试生成的可执行文件还是从网络驱动器/加密文件夹上启动的AUT,都不具备必要的安全权限。

解决方法:

尝试把这两个应用程序都复制到你的硬盘上的一个文件夹中。

原因3:

不能识别的是执行混合模式的EXE文件(不是DLL程序集)。原因可能是混淆的程序或者程序集合并所创建的混合模式EXE文件。.NET框架不支付加载这样混合模式的可执行文件到进程中,并且这也是Ranorex为什么不能在其中实施控制的原因。

解决方法:

作为一种变通方法,你可以尝试自动操作一个非混淆的程序

原因4:

不能被识别的控件是程序集中针对特定平台/处理器编译的,以及自动测试用例是针对不同平台和处理器的。在64位操作系统,这可能会导致问题。因为程序集不能通过自动化进程加载。

解决方法:

在自动化项目选项中尝试改变“Target CPU”(Ranorex Studio)或’Platform Target’ (Visual Studio)选项,使其与待测应用的设置相一致。如果你不知道待测程序的CPU/平台配置,首先试着将选项改为‘Any processor’或‘Any CPU’,然后分别尝试其它的选项。

原因5:

.NET Framework 4.0的扩展包是必需的,但没有安装。通常这种问题的征兆是控件通过单独的Ranorex Spy程序可以进行正确的识别,但不能被集成了Ranorex Spy或Recorder的Ranorex Studio识别。在.NET Framework4.0下开发应用程序在这种情况下会弹出一个受到技术限制的提示窗口:不能加载特定的程序集。

解决方法:

可以安装.NET Framework 4.0的扩展包,如果不能就使用Ranorex Spy和Recorder而不是使用集成了它们的Ranorex Studio。

原因6:

如果待测应用是在.NET Framework 4.0下创建的,那么一个<executableName>.exe.config的文件(其中<executableName>将被替换成Ranorex的可执行文件的名字)需要和Ranorex的可执行文件保存在同一个文件夹下。

解决方法:

创建并添加一个app.config配置文件,并与下面的内容一起添加到您的项目中。确保经过编译和执行可执行文件时有一个<executableName> exe.config文件在同一文件夹作为Ranorex可执行文件。以下为内容:

1         <configuration>

2           <startup useLegacyV2RuntimeActivationPolicy=”true”>

3             <supportedRuntime version=”v4.0″/>

4             <supportedRuntime version=”v2.0.50727″/>

5           </startup>

6         </configuration>

.NET Silverlight

Ranorex无法访问你Silverlight应用程序里面的UI对象。

解决方法:

请确保你的Silverlight应用程序的窗口将尽可能少的属性设置为“False” 。

Flash / Flex的应用程序

在使用调制向导激活Flash / Flex的插件后,Ranorex仍然无法识别到应用程序中的Flash / Flex元素。

原因1:

The AllowScriptAccess parameter in the HTML code that loads a SWF file controls the ability to perform outbound URL access from within the SWF file.

解决方法:

在PARAM或者 EMBED 标签中将该参数设置为’always’ 。

原因2:

你的Flash / Flex应用程序使用不同版本的Ranorex Flash组件调制了两次。

解决方法:

确保只使用了一个推荐的Flash / Flex调制方法。

基于Win32的应用程序

对基于Win32的应用支持有限的几个原因:

原因1:

自动化进程没有访问待测程序进程所需的安全权限,所以对该进程的UI元素的识别能力有限。

解决方法:

自动化进程( Ranorex可执行文件)和自动化应用程序(AUT)并非使用相同的安全权限进行启动,例如,不是同一个Windows用户。确保使用相同的权限启动这两个进程。

原因2:

自动化的程序和自动化进程中有不同的位宽度,无法启动32/64位桥。所以在该进程中的UI元素的识别能力有限。

解决方法:

请联系Ranorexsupport team团队获得更多的帮助。

原因3:

自动化的程序和自动化进程中有不同的位宽度,并且禁用了32/64位桥。所以在该进程中的UI元素的识别能力有限。

解决方法:

确保General Ranorex Settings启用了 32/64位桥。

浏览器(Mozilla Firefox, Google Chrome, Apple Safari)

Mozilla Firefox:

火狐浏览器中UI元素的识别能力有限。

解决方法:

请确保在Mozilla浏览器中你已安装并启用了Ranorex的插件。请参考Mozilla Firefox浏览器向导文档了解更多信息。

Google Chrome:

Google Chrome浏览器对UI元素的识别能力有限。

解决方法:

请确保你已经在你的Google Chrome浏览器中安装并激活了Ranorex Extension。请参阅Google Chrome安装向导文档了解更多信息。

Apple Safari: 

Apple Safari浏览器对UI元素的识别能力有限。

解决方法:

请确保你已经在你的Apple Safari浏览器中安装并激活了Ranorex Extension。

请参阅Apple Safari调制向导文档了解更多信息。

图片相关的自动化或验证

Ranorex基于图片录制的能力是有限的,因为input event的异步分发不可用。

解决方法:

如果你基于图片的录制遇到问题,请在录制器设置对话框中激活asynchronous dispatching of mouse and keyboard events。

几何相关的问题

控件不显示,状态为空,或者自动化时在滚出视图。

解决方法:

把相应的对象库条目的(及其父文件夹)的属性‘Use Ensure Visible’设置为“False”,对应Repository Item Properties章中的描述。

Windows Apps (aka Windows 8 UI Apps)

导致基于Windows 8下UI的应用程序不能正确被识别可能有以下几个原因:

原因1:

测试可执行文件是通过Ranorex工具启动的,并且设置’Use UiaLauncher to elevate privileges for processes started by tools'(‘General Settings’ 对话框 -> ‘Advanced’ 页)是没有启用的。

解决方法:

启用提到的设置。

原因2:

Ranorex未安装在一个安全的位置。

解决方法:

把Ranorex安装到目录“Program Files”或“Program Files(x86 ) ”下 。

原因 3:

测试的可执行程序不是通过Ranorex工具来启动的。

解决方法1:

使用TestSuiteRunner启动测试套件。

解决方法2:

使用Ranorex UiaLauncher ( <Ranorex安装文件夹>\bin\Ranorex.UiaLauncher32.exe)来启动可执行文件,文件名作为测试的第一个参数。

例如: Ranorex.UiaLauncher32.exe <Solution Folder>\bin\debug\<Project Executable>.exe.

解决方法3:

把下面几行代码添加到项目(可执行的)文件Program.cs / Program.vb中:

C#

7         if (Ranorex.Core.Util.IsRestartRequiredForWinAppAccess)

8          return Ranorex.Core.Util.RestartWithUiAccess();

VB.NET

  1. If Ranorex.Core.Util.IsRestartRequiredForWinAppAccess Then
  2.     Return Ranorex.Core.Util.RestartWithUiAccess()
  3. End If

其它的软件

一些杀毒软件或安全软件的运行可能会导致Ranorex工具只能识别有限的对象。

原因1:

防病毒软件或安全软件会阻止部分Ranorex的功能。

解决方法:

给特定的Ranorex进程添加到例外中或暂时关闭特定的安全软件。

Leave a comment

请输入正确的验证码