我有一个Flash应用程序,它已经用Selenium Flex重新编译。
使用FlashFirebug,我能够找到该应用程序的定位器,并且我已经使用Selenium Flex API和Selenium RC编写了脚本,当我运行脚本时,这些定位器被识别,但无法执行操作。
在selenium IDE中,这些定位器也可以被识别,但是像click这样的操作无法执行。
我有一个Flash应用程序,它已经用Selenium Flex重新编译。
使用FlashFirebug,我能够找到该应用程序的定位器,并且我已经使用Selenium Flex API和Selenium RC编写了脚本,当我运行脚本时,这些定位器被识别,但无法执行操作。
在selenium IDE中,这些定位器也可以被识别,但是像click这样的操作无法执行。
2条答案
按热度按时间xcitsw881#
这就是我如何找到你的问题的根源:
document.getElementById(swfId)
获取对swf的引用ExternalInterface.addCallback("doFlexMouseDown", mouseCommands.doFlexMouseDown);
表示名为 doFlexMouseDown 的Javascript函数(在MouseCommands.as中定义)已在swf中公开。执行Javascript表达式typeof document.getElementById('swfId').doFlexMouseDown
应计算为 function(而不是 undefined)。您还应该能够调用此函数而不会出现错误-document.getElementById(swfId).doFlexClick('idOfFlexObject')
,其中idOfFlexObject
是某个对象的ID(例如按钮)。ymdaylpp2#
通过SFAPI(Slenium Flex API)点击Flex应用程序非常简单,您必须使用SeleniumFlexAPI.swc文件编译Flex代码,该文件位于SFAPI文件夹中。对于SFAPI的这些文件,您需要遵循以下步骤See here
或see example here