如何在appium中获取带有特定标签的ADB logcat



我想通过APPIUM获取特定标签(例如testing_aws(的ADB日志。事实上,我已经直接从控制台完成了这项工作,就像下面的一样

  • 我导航到/home/jagadeesh/android-sdk-linux/platform-tools
  • 然后我运行了这个命令adb shell logcat | grep testing_aws,它成功地提供了预期的数据
  • 现在我想通过appium实现相同的数据
  • 我见过一些解决方案,比如List<LogEntry> adbLogs =driver().manage().logs().get("logcat").filter(Level.ALL);,它会提供完整的设备日志,但我找不到一种使用特定标签进行过滤的方法(例如:testing_aws(
  • 因此,如果有一种方法可以通过标记名进行筛选并通过appium获得输出,请帮助我

您可以首先获取所有日志

List<LogEntry> logEntries = driver.manage().logs().get("logcat").filter(Level.ALL);

然后你可以过滤你的日志。

for (LogEntry logEntry : logEntries) {
if (logEntry.getMessage().contains("testing_aws")) {
System.out.println(logEntry.getMessage());
}
}

如果你想在文件中添加过滤后的日志,你可以这样做:

List<LogEntry> logEntries = driver.manage().logs().get("logcat").filter(Level.ALL);
File logFile = new File("path to store file"+"filename"+".txt");
logFile.getParentFile().mkdirs();
PrintWriter log_file_writer = new PrintWriter(logFile);
for (LogEntry logEntry : logEntries) {
if (logEntry.getMessage().contains("testing_aws")) {
log_file_writer.println(logEntry);
}
}
log_file_writer.flush();

最新更新