代码之家  ›  专栏  ›  技术社区  ›  Max Williams

Selenium:我可以测试一个页面是否正确加载了一个Flash应用程序(即SWF)吗?

  •  1
  • Max Williams  · 技术社区  · 15 年前

    我正在编写一些硒测试(在rspec中为Rails应用程序编写)。我的一个页面加载了一个SWF,当我不想测试这个Flash应用的功能时,我确实想测试它是否加载了。这可能吗?

    如果有帮助,加载SWF的HTML是:

    <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
    codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="800" height="600">
    <PARAM NAME=movie VALUE="http://localhost:3000/assets/players/millionaire/millionaire.swf">
    <PARAM NAME=quality VALUE="high">
    <PARAM NAME=FlashVars VALUE="quizXML=http://localhost:3000/quizzes/371.xml?online=true&myURL=http://localhost:3000/assets/players/millionaire/&online=true">
    
    <param name=width value="800">
    <param name=height value="600">
    <EMBED src="http://localhost:3000/assets/players/millionaire/millionaire.swf" FlashVars="quizXML=http://localhost:3000/quizzes/371.xml?online=true&myURL=http://localhost:3000/assets/players/millionaire/&online=true" width="800" height="600" quality=high TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
    </EMBED>
    </OBJECT>    
    

    谢谢-马克斯

    2 回复  |  直到 11 年前
        1
  •  2
  •   sschrass Maverick    11 年前

    是的,你可以。看看闪光硒。 http://code.google.com/p/flash-selenium/

    有一个叫做percentloaded的小函数。

    断言等于(100,flashapp.percentloaded());

    你可以写一个简单的for循环,等待它返回100。

    像:

        while ( flashApp.PercentLoaded() < 100 )
        {
            Thread.sleep(1);
        }
    

    希望有帮助, Gergely。

        2
  •  1
  •   IAdapter    15 年前

    我认为您可以使用javascript与flash对象交互,因此可以使用selenium.geteval(“script”)。

    还有一个测试闪存的组件 http://www.adobe.com/devnet/flash/articles/flash_selenium_print.html