Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium、Java、waitForCondition_Java_Flash_Selenium - Fatal编程技术网

Selenium、Java、waitForCondition

Selenium、Java、waitForCondition,java,flash,selenium,Java,Flash,Selenium,我想检查以下内容(在ie8上): 点击链接后,弹出窗口启动,然后我想检查里面的flash内容是否已加载 出于某些原因,waitForPopUp不起作用,它只是一直在等待并超时,但我用这种方式解决了它: selenium.waitForCondition("selenium.getAllWindowTitles().length > 1;", "30000"); String windowID = selenium.getAllWindowTitles()[1]; selenium.sele

我想检查以下内容(在ie8上):

点击链接后,弹出窗口启动,然后我想检查里面的flash内容是否已加载

出于某些原因,waitForPopUp不起作用,它只是一直在等待并超时,但我用这种方式解决了它:

selenium.waitForCondition("selenium.getAllWindowTitles().length > 1;", "30000");
String windowID = selenium.getAllWindowTitles()[1];
selenium.selectWindow(windowID);
然后我想在检查任何内容之前检查一下flash内容是否在那里(网页速度很慢,弹出窗口需要一段时间才能显示内容)

我已经尝试了数百种方法,但没有一种有效, 我也试着检查文本是否存在,但没有,即使网页完全加载,也总是超时


出于某种原因,如果我在调试器中一步一步地执行,一切都正常:我对此进行了一些思考。
如果对象已真实加载且flash应用程序已准备就绪并初始化,则无法对其进行测试。
让selenium知道flash对象已加载并准备就绪的唯一真正方法是让flash使用ExternalInterface方法并调用JavaScript函数,该函数将分配一个变量,然后让selenium在计时器上测试该变量

Example<br/>
// in JavaScript
var isFlashLoaded = false;
function cbIsLoaded( ){
   isFlashLoaded = true;
}


// in AS3 
var retVal:int = ExternalInterface.call("cbIsLoaded");
示例
//在JavaScript中 var isFlashLoaded=false; 函数cbIsLoaded(){ isFlashLoaded=true; } //在AS3中 var retVal:int=ExternalInterface.call(“cbIsLoaded”);
尝试以其他方式执行操作:flashObj=document.getElementById('flashClient');在萤火虫工厂。selenium.getEval(“this.browserbot.getCurrentWindow().document.getElementById('flashClient');”)返回null。selenium.getEval(“this.page().findElement('id=flashClient');”)引发找不到元素的异常。有猜测吗?可能为空,因为对象尚未创建?如果没有加载,firebug中也会为空,对吗?firebug不太清楚。FireBug可能只是在展示里面应该有的东西。在脚本尝试对flash对象执行任何操作之前,请尝试在脚本中延迟几秒钟。看看这是否有帮助,所以我需要要求开发团队在他们的代码中包含类似的内容……让我们看看我需要多少时间来教这些老狗一个新的技巧:p。谢谢
Example<br/>
// in JavaScript
var isFlashLoaded = false;
function cbIsLoaded( ){
   isFlashLoaded = true;
}


// in AS3 
var retVal:int = ExternalInterface.call("cbIsLoaded");