2

任何人都可以帮助我如何使用 Selenium 自动播放/暂停网页上的视频。

提前致谢...

4

2 回答 2

9

这非常依赖于浏览器和处理视频的播放器。您很可能需要使用 JavaScript 执行程序。

昨晚我和一个朋友讨论了这个问题,他想出了以下示例,使用 Webdriver 的 Python 变体作为来自 html5demos.com 的演示视频:

driver = webdriver.Firefox()
driver.get("http://html5demos.com/video")
driver.execute_script('document.getElementsByTagName("video")[0].play()')

您也可以在使用“播放”的地方“暂停”。

这里有一个更大的问题:您实际上要验证什么?简单的播放和暂停不会引发任何错误?确保您知道要验证的内容,并且实际工作以自动化视频测试而不是将特定用例留给手动测试是有意义的。(尽管您可以使用上面的脚本来达到这一点!)

** 编辑:查看这段 Python 代码(不是我的),它公开了一个“Paused”属性。现在您至少可以验证视频的加载、启动和停止。我仍然对使用这种测试持怀疑态度,但至少这是一个开始。

于 2012-04-07T12:34:09.383 回答
0

通过使用 FlashObjectwebDriver !

现在什么是 FlashObjectWebDriver ?

FlashObjectWebDriver 是 Webdriver Library 下的一个接口。FlashObjectWebDriver 有一个名为的方法: callFlashObject callFlashObject 方法可以使用参数重载,即。callFlashObject(“Play”) : 播放 Flash callFlashObject(“Pause”) : 暂停 Flash callFlashObject(“Previous”) : 播放上一个 Flash 视频 callFlashObject(“next”) : 播放下一个 Flash 视频 callFlashObject(“SetVariable” ”, “/:Message) : 用于显示消息。执行 :

FlashObjectWebDriver flashApp = new FlashObjectWebDriver(driver, "myFlashMovie");       
    // Pass the URL of video        
    driver.get("http://demo.guru99.com/flash-testing.html");            
    Thread.sleep(5000);     
    flashApp.callFlashObject("Play");           
    Thread.sleep(5000);     
    flashApp.callFlashObject("StopPlay");           
    Thread.sleep(5000);     
    flashApp.callFlashObject("SetVariable","/:message","Flash testing using selenium Webdriver");
    System.out.println(flashApp.callFlashObject("GetVariable","/:message"));
于 2017-06-01T18:22:28.000 回答