当前位置: 首页 > 知识库问答 >
问题:

使用SeleniumWebDriver和Java播放视频

司马建柏
2023-03-14

我正在尝试播放以下网站的视频(使用JUnit)-Day01。http://www.itelearn.com/live-training/security-testing-live-training我试图实现的是,在播放视频后,我将拍摄一张屏幕截图,以证明视频播放正确。点击Day01视频后,它会在一个新窗口中打开——当我查看代码时,我意识到他们使用了iFrame。我可以关闭此视频窗口,但无法播放/暂停此视频。

要关闭视频,我已经使用了代码-WebDriverWAT=new WebDriverWAT(驱动程序,20);wait.until(ExectedConditions.visibilityOfElement定位(By.xpath(xPath)))。

我是测试新手,请帮帮我。

共有3个答案

淳于健
2023-03-14
WebDriver driver=new FirefoxDriver();
driver.get("https://www.wonderplugin.com/wordpress-lightbox");
WebElement element=driver.findElement(By.xpath("//a[contains(text(),'Open a Div in Lightbox')]"));
element.click();
WebElement frameElement=driver.findElement(By.xpath("//iframe[@src='https://www.youtube.com/embed/wswxQ3mhwqQ']"));
        driver.switchTo().frame(frameElement);
        driver.findElement(By.xpath("//button[@aria-label=\'Play\']")).click();
施利
2023-03-14

尝试使用JavaScriptExecutor。以下方法适用于我:

import org.openqa.selenium.JavascriptExecutor;

JavascriptExecutor js = (JavascriptExecutor) driver;
js .executeScript("document.getElementById(\"video\").play()");

我可以播放视频https://www.w3.org/2010/05/video/mediaevents.html并验证进度字段。

祝你好运

俞俊逸
2023-03-14

那你换上iframe了吗?

尝试以下未经测试的Java代码,请注意,这里的逻辑很简单,您可以通过xpath或css选择器找到iframe元素,然后切换到它,然后单击。然而,自动化播放器可能不是那么容易和稳定。如果可以,请提供反馈,谢谢。

WebDriverWait wait = new WebDriverWait(driver, 20);
WebElement playerIframe = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#sb-player iframe")));
driver.switchTo().frame(playerIframe);

// make sure you have html5 video loaded, instead of flash
// otherwise Selenium won't find a thing
driver.findElement(By.cssSelector("svg.ytp-cued-icon")).click();

要默认加载HTML5,请在启动Selenium时查看此页面或加载YouTube的扩展HTML5视频。

 类似资料:
  • 问题内容: 谁能帮助我如何使用Selenium自动播放/暂停网页上显示的视频。 提前致谢… 问题答案: 这在很大程度上取决于浏览器和处理视频的播放器。您很有可能需要使用JavaScript执行程序。 我昨晚与一位朋友讨论了这个问题,他提出了以下示例,该示例使用了Webdriver的Python变体,用于html5demos.com的演示视频: 您也可以在使用“播放”的地方“暂停”。 这里有一个更大

  • 我们正在使用在Xamarin中构建一个应用程序。在应用程序中,我们需要播放视频,因此我们为此编写了一些代码。但是,视频没有播放,在Android上应用程序崩溃,同时抛出一个通用错误。 这是代码: 视频容器。反恐精英 VideoViewRender。反恐精英 所发生的情况是,被记录到控制台,但没有。我们从Xamarin论坛获得了这段代码,但未能成功实现。我们做错了什么?

  • 问题内容: 我正在使用Flask提供.m3u8和.ts文件来模拟vod流。 视频播放器不会流式传输文件并显示错误(请参见下面的屏幕截图)。我找不到它是什么错误的日志。 我缺少某处的日志消息吗?是什么原因造成的,我该如何解决? 问题答案: 默认情况下,开发服务器以单线程模式运行,这意味着它一次只能处理一个请求。你一次请求两个文件流,.m3u8和.ts。你可以传递或以允许一次处理多个请求,但是,用它自

  • 问题内容: 在AVFoundation中是否有相对简单的循环视频的方法? 我已经如下创建了我的AVPlayer和AVPlayerLayer: 然后播放以下视频: 视频播放正常,但在最后停止。使用MPMoviePlayerController,您所要做的就是将其属性设置为正确的值。在AVPlayer上似乎没有类似的属性。似乎也没有回调可以告诉我电影何时结束,因此我可以寻找开始并再次播放。 我没有使用

  • 在我的网络应用程序中,用户应该能够上传自己的视频(任意一种格式)。我正在使用ffmpeg对视频进行编码。mp4和。flv使用命令: ffmpeg-iuservid.whateveroutput.mp4output.flv 当ffmpeg对视频进行编码时,它会加载到用户页面上的flowplayer中。但flowplayer总是说“找不到文件”,因为ffmpeg编码尚未完成。 是否有可能在某个播放器中

  • 我想玩。iPhone应用程序中的mpd文件,为此我尝试了VLC播放器,但它没有按照预期工作,播放视频花费了太多时间。我还有其他选择吗。像Android中的exoplayer这样的mpd文件。 我已经为此目的实现了VLC媒体播放器,但现在我正在寻找另一种选择。如果有人对此有任何想法,请帮助。