我想检查以下内容(在 ie8 上):
点击链接后,弹出窗口启动,然后我想检查里面的 flash 内容是否已加载。
由于某种原因 waitForPopUp 不起作用,它一直在等待并超时,但我已经通过这种方式解决了:
selenium.waitForCondition("selenium.getAllWindowTitles().length > 1;", "30000");
String windowID = selenium.getAllWindowTitles()[1];
selenium.selectWindow(windowID);
然后我想在检查任何内容之前检查 flash 内容是否存在(网页非常慢,弹出窗口需要一段时间才能显示内容)
selenium.waitForCondition("selenium.isElementPresent(\"//*[@id='flashcontent']\");",
"30000");
FlashSelenium flashApp = new FlashSelenium(selenium, "flashClient");
assertTrue ( flashApp.PercentLoaded() == 100 );
我已经尝试了数百种方法来做到这一点,但没有一种有效, 我也试过检查文本是否存在但没有,即使网页已完全加载也总是超时。
出于某种原因,如果我在调试器中逐步执行,一切正常 :S
最佳答案
我再考虑了一下。
没有办法测试对象是否真正加载并且 Flash 应用程序已准备就绪并已初始化。
让 selenium 知道 flash 对象已加载并准备就绪的唯一真正方法是让 flash 使用 ExternalInterface 方法并调用将分配 var 的 JavaScript 函数,然后让 selenium 在计时器上测试该 var。
Example<br/>
// in JavaScript
var isFlashLoaded = false;
function cbIsLoaded( ){
isFlashLoaded = true;
}
// in AS3
var retVal:int = ExternalInterface.call("cbIsLoaded");
关于java - Selenium ,Java,waitForCondition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216712/