为了自动测试视频,我们决定在视频播放时捕获视频的屏幕截图并比较这些屏幕截图,以确保视频被播放。但是,当我在播放视频时尝试捕获视频播放器的屏幕截图时,只会显示黑屏。
我们使用 selenium web-driver 和 JAVA 来开发自动化脚本。有没有其他方法可以确保视频是否被播放。拍摄正在播放的 Flash 视频的屏幕截图是否需要任何 Flash 支持?
请帮助我们。我们遵循的视频测试方法是否正确?
请在下面找到我的硒网络驱动程序代码
代码
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.By;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Screenshot {
public static void main(String[] args) throws InterruptedException, IOException
{
FirefoxDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
FlashObjectWebDriver flashapp=null;
flashapp = new FlashObjectWebDriver(driver,"PlayerPlatformAPI");
driver.get("Flash media player URL");
Thread.sleep(1000L);
WebElement streamurl = driver.findElement(By.name("Stream URL"));
streamurl.clear();
streamurl.sendKeys("video link");
WebElement tune=driver.findElement(By.xpath("//div[@id='outer']//input[@type='button']"));
tune.click();
Thread.sleep(1000L);
driver.findElement(By.id("PlayerPlatformAPI"));
screen.seekTo(50);
flashapp.callFlashObject("SeekTo","50");
int i;
for(i=0;i<4;i++)
{
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
// Now you can do whatever you need to do with it, for example copy somewhere
File file1 = new File("c:\\tmp\\"+i+"_scrnshot.jpeg");
FileUtils.copyFile(scrFile,file1);
Thread.sleep(10000);
}
driver.close();
}
}