appium selenium中的java代码截图
谁能告诉我AndroidDriver的截图代码应该是什么。我正在使用下面的代码,对于突出显示的行,我将获得Java空指针异常 驱动程序是一个AndroidDriver驱动程序;扩展到这个类appium selenium中的java代码截图,java,android,appium,Java,Android,Appium,谁能告诉我AndroidDriver的截图代码应该是什么。我正在使用下面的代码,对于突出显示的行,我将获得Java空指针异常 驱动程序是一个AndroidDriver驱动程序;扩展到这个类 public void onTestFailure(ITestResult result) { // TODO Auto-generated method stub if(!result.isSuccess()){ Calendar calendar = Calendar.
public void onTestFailure(ITestResult result) {
// TODO Auto-generated method stub
if(!result.isSuccess()){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
String methodName = result.getName();
****File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);****
try {
String reportDirectory = new File(System.getProperty("user.dir")).getAbsolutePath() + "\\src\\test\\java\\com\\automation\\mobile\\app\\android\\";
File destFile = new File((String) reportDirectory + "/failure_screenshots/" + methodName + "_" + formater.format(calendar.getTime()) + ".png");
FileUtils.copyFile(scrFile, destFile);
Reporter.log("<a href='" + destFile.getAbsolutePath() + "'> <img src='" + destFile.getAbsolutePath() + "' height='100' width='100'/> </a>");
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void onTestFailure(ITestResult结果){
//TODO自动生成的方法存根
如果(!result.issucess()){
日历=Calendar.getInstance();
SimpleDataFormat格式化程序=新的SimpleDataFormat(“dd_-MM_-yyy_-hh_-MM_-ss”);
String methodName=result.getName();
****文件scrFile=((TakesScreenshot)driver.getScreenshotAs(OutputType.File)****
试一试{
String reportDirectory=新文件(System.getProperty(“user.dir”)).getAbsolutePath()+“\\src\\test\\java\\com\\automation\\mobile\\app\\android\\”;
File destFile=new File((String)reportDirectory+”/failure\u屏幕截图/“+methodName+”\u“+formatter.format(calendar.getTime())+”.png”);
copyFile(scrFile,destFile);
记录者。日志(“”);
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
假设您创建了如下驱动程序:
AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
您只需执行以下操作即可创建屏幕截图:
File srcFile = driver.getScreenshotAs(OutputType.FILE);
String filename = UUID.randomUUID().toString();
File targetFile = new File(System.getProperty("user.dir") + "/screenshots/" + filename + ".jpg");
try {
FileUtils.copyFile(srcFile, targetFile);
} catch (IOException e) {
e.printStackTrace();
}
只需确保您的驱动程序会话仍处于活动状态,然后再进行屏幕截图->检查appium服务器日志,您可能会得到500,然后它无法截图
在appium 1.8和java客户端6.0.0-BETA5上测试,这里有一个简单的C#解决方案。翻译成Java应该不会太复杂 这里的screenshotName是您希望文件具有的名称,driver是您的驱动程序实例,用于引导应用程序
public void GetScreenshot(IWebDriver driver, string screenshotName)
{
ITakesScreenshot ts = (ITakesScreenshot) driver;
var screenshot = ts.GetScreenshot();
var screenshotPath = @"C:\temp\" + screenshotName +".bmp";
screenshot.SaveAsFile(screenshotPath);
}
希望这有帮助