1

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

要关闭视频,我使用了代码-- WebDriverWait wait = new WebDriverWait(driver, 20); wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(xPath))).click();

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

4

3 回答 3

2

那么你切换到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 视频。

于 2013-07-13T07:35:48.837 回答
1

尝试使用 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播放视频并验证进度字段。

祝你好运!

于 2016-05-12T07:27:04.780 回答
0
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();
于 2019-06-23T12:48:52.380 回答