如何用UFT 12.54在Chrome中自动化Flex应用并解决对象识别问题
解决UFT 12.54无法识别Chrome中Flex 4.5应用对象的问题
我之前帮不少人处理过UFT与Flex自动化的兼容性问题,结合你遇到的情况,整理了几个关键的排查和解决步骤,你可以一步步尝试:
1. 确认UFT Flex插件的安装与启用
- 首先得确保UFT装了Flex Add-in——默认安装可能没勾选这个组件,你可以通过UFT的Add-in Manager添加。启动UFT时,一定要在Add-in Manager里勾选Flex选项,不然根本没法识别Flex控件。
- 还要检查插件版本兼容性:UFT 12.54的Flex插件得匹配Flex 4.5和Flash Player 28。你可以去UFT安装目录(一般是
C:\Program Files (x86)\HP\Unified Functional Testing\dat\Flex)看看FlexAgent.swc这类文件的版本,要是不对,得换成适配Flex 4.5的版本。
2. 配置Chrome的Flash Player权限
- 打开Chrome,在地址栏输入
chrome://settings/content/flash,先确保目标Flex应用的域名被允许运行Flash,而且**“允许网站运行Flash”**这个总开关得打开。 - 再去
chrome://extensions/页面,确认Flash Player Debugger是启用状态,没被禁用或拦截。
3. 验证Flex应用的调试编译状态
- Flex应用必须是调试模式编译的,UFT的Flex Agent才能注入进去识别内部控件。你得跟开发确认,他们编译Flex 4.5应用时有没有加调试参数,有没有把UFT的
FlexAgent.swc引入项目。要是应用是发布模式编译的,UFT肯定只能识别成WebElement,抓不到内部控件。 - 验证方法:打开Flex应用后右键点击应用区域,要是能看到“Debugger”相关选项(比如“Show Redraw Regions”),说明是调试模式;没有的话,就得让开发重新编译。
4. 调整UFT的对象识别规则
- 打开UFT,去Tools > Object Identification,选择Web类,检查WebElement的识别属性是不是合理。默认属性可能不够区分Flex对象,你可以把
class name、inner text、unique ID这类属性加到强制识别列表里。 - 再用UFT的Object Spy重新捕获对象,看看能不能识别到Flex专属控件(比如FlexButton、FlexDataGrid)。要是还是只能抓到WebElement,说明Agent没成功注入。
5. 检查UFT与Chrome的版本兼容性
- UFT 12.54对Chrome的支持范围有限,你用的Chrome版本得在它的兼容列表里——一般Chrome 50到60左右的版本适配性最好,新版本Chrome可能不支持UFT 12.54。要是Chrome版本太高,建议降级到兼容版本。
- 还要确认UFT的Chrome Web Driver配置正确:去Tools > Options > Web > Advanced里,检查Chrome Driver的路径是不是指向了和你Chrome版本匹配的驱动文件。
6. 备选方案:用描述性编程定位对象
要是上面的步骤都解决不了,你可以试试用描述性编程(Descriptive Programming)来定位Flex对象,通过组合多个属性(比如xpath、css selector、class name)来唯一识别控件,示例VBS代码如下:
' 示例:定位Flex按钮并点击 Set flexButton = Browser("title:=你的Flex应用标题").Page("title:=你的Flex应用标题").WebElement("css:=div.flex-button[data-value='目标按钮值']") flexButton.Click
内容的提问来源于stack exchange,提问作者Thrupthi R p
相关产品推荐
相关产品推荐

