如何在appium中获取带有特定标签的ADB logcat?
How to get ADB logcat with specific tag in appium?
我想通过 APPIUM 获取特定标签(例如:testing_aws)的 ADB logcat。实际上我是直接从控制台完成的,如下所示
- 我导航到 /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();
我想通过 APPIUM 获取特定标签(例如:testing_aws)的 ADB logcat。实际上我是直接从控制台完成的,如下所示
- 我导航到 /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();