加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Selenium,Java,waitForCondition

发布时间:2020-12-15 02:26:06 所属栏目:Java 来源:网络整理
导读:我想检查以下内容(在ie8上): 单击链接后,弹出窗口启动,然后我想检查内部的Flash内容是否已加载. 由于某些原因,waitForPopUp不起作用,它只是等待和超时,但我已经解决了这个问题: selenium.waitForCondition("selenium.getAllWindowTitles().length 1;","300
我想检查以下内容(在ie8上):

单击链接后,弹出窗口启动,然后我想检查内部的Flash内容是否已加载.

由于某些原因,waitForPopUp不起作用,它只是等待和超时,但我已经解决了这个问题:

selenium.waitForCondition("selenium.getAllWindowTitles().length > 1;","30000");
String windowID = selenium.getAllWindowTitles()[1];
selenium.selectWindow(windowID);

然后我想检查闪存内容是否存在,然后检查它上面的任何内容(网页非常慢,弹出窗口需要一段时间来显示内容)

selenium.waitForCondition("selenium.isElementPresent("//*[@id='flashcontent']");","30000");
FlashSelenium flashApp = new FlashSelenium(selenium,"flashClient");
assertTrue ( flashApp.PercentLoaded() == 100 );

我已经尝试了数百种方法来做到这一点,但没有一种方法,
我还尝试检查文本是否存在但没有任何内容,即使网页已完全加载也总是超时.

出于某种原因,如果我在调试器中逐步执行,一切正常:S

解决方法

我更多地考虑了这一点.
如果对象是真正加载的并且Flash应用程序已准备就绪并已初始化,则无法对其进行测试.
让selenium知道flash对象的唯一真正方法是加载并准备好让flash使用ExternalInterface方法并调用一个JavaScript函数,该函数将分配一个var,然后在定时器上对var进行selenium测试.

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


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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读