Scan-Ergebnisse lokal speichern

This page is not available in the language you requested. You have been redirected to the English version of the page.
Link to this page copied to clipboard
Not for use with personal data

Wenn Sie Scan-Ergebnisse lokal speichern, können Sie das JSON-Ergebnis verwenden, um Barrierefreiheitsmetriken in verschiedene Berichtswerkzeuge zu integrieren. Sie können auch einen HTML-Bericht erstellen, den Sie per E-Mail oder Chat teilen, um Ihr Team über den Barrierefreiheitsstatus Ihres Testlaufs zu informieren.

Das Speichern von Ergebnissen lokal ist nur unterstützt innerhalb von automatisierten Tests.

Ergebnisse speichern und teilen

Erstellen Sie ein 'reports'-Verzeichnis in Ihrem Benutzerverzeichnis, in dem Sie die JSON-Ergebnisse speichern werden. Siehe die folgenden Beispiele.

Ruby

require 'json'
require 'fileutils'

#
# Set up driver, capabilities and axeStartSession here before scanning
#

# Start Scan Here
scanResult = @driver.execute_script 'mobile: axeScan'

# Convert result to JSON string
json_result = JSON.pretty_generate(scanResult)

# Create timestamp for filename
timestamp = Time.now.strftime('%Y-%m-%dT%H-%M-%S')
filename = "axe-scan-result-#{timestamp}.json"

# Create reports directory
reports_dir = File.join(Dir.home, 'reports', 'axeScans')
FileUtils.mkdir_p(reports_dir)

# Save to file
filepath = File.join(reports_dir, filename)
File.write(filepath, json_result)

puts "Axe scan result saved to: #{filepath}"

JavaScript

const fs = require('fs');
const path = require('path');

//
//Set up driver, capabilities and axeStartSession here before scanning
//

// Start axeScan
const scanResult = await driver.execute('mobile: axeScan')

// Convert result to JSON string
const jsonResult = JSON.stringify(scanResult, null, 2);

// Create timestamp for filename
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
const filename = `axe-scan-result-${timestamp}.json`;

// Create reports directory
const reportsDir = path.join(require('os').homedir(), 'reports', 'axeScans');
fs.mkdirSync(reportsDir, { recursive: true });

// Save to file
const filepath = path.join(reportsDir, filename);
fs.writeFileSync(filepath, jsonResult, 'utf8');

console.log(`Axe scan result saved to: ${filepath}`);

Python

import json
from datetime import datetime
from pathlib import Path

#
# Set up driver, capabilities and axeStartSession here before scanning
#

# Start axeScan
scan_result = driver.execute_script('mobile: axeScan')

# Convert result to JSON string
json_result = json.dumps(scan_result, indent=2)

# Create timestamp for filename
timestamp = datetime.now().strftime('%Y-%m-%dT%H-%M-%S')
filename = f"axe-scan-result-{timestamp}.json"

# Create reports directory
reports_dir = Path.home() / 'reports' / 'axeScans'
reports_dir.mkdir(parents=True, exist_ok=True)

# Save to file
filepath = reports_dir / filename
filepath.write_text(json_result, encoding='utf-8')

print(f"Axe scan result saved to: {filepath}")

Java

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;

//
// Set up driver, capabilities and axeStartSession here before scanning
//

// Start axeScan
Object scanResult = driver.executeScript("mobile: axeScan");

// Convert result to JSON string
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String jsonResult = gson.toJson(scanResult);

// Create timestamp for filename
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH-mm-ss");
String timestamp = LocalDateTime.now().format(formatter);
String filename = "axe-scan-result-" + timestamp + ".json";

// Create reports directory
Path reportsDir = Paths.get(System.getProperty("user.home"), "reports", "axeScans");
Files.createDirectories(reportsDir);

// Save to file
Path filepath = reportsDir.resolve(filename);
Files.write(filepath, jsonResult.getBytes());

System.out.println("Axe scan result saved to: " + filepath.toString());

Kotlin

import com.google.gson.Gson
import com.google.gson.GsonBuilder
import java.nio.file.Files
import java.nio.file.Paths
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter

//
// Set up driver, capabilities and axeStartSession here before scanning
//

// Start axeScan
val scanResult = driver.executeScript("mobile: axeScan")

// Convert result to JSON string
val gson = GsonBuilder().setPrettyPrinting().create()
val jsonResult = gson.toJson(scanResult)

// Create timestamp for filename
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH-mm-ss")
val timestamp = LocalDateTime.now().format(formatter)
val filename = "axe-scan-result-$timestamp.json"

// Create reports directory
val reportsDir = Paths.get(System.getProperty("user.home"), "reports", "axeScans")
Files.createDirectories(reportsDir)

// Save to file
val filepath = reportsDir.resolve(filename)
Files.write(filepath, jsonResult.toByteArray())

println("Axe scan result saved to: $filepath")

C#

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;

//
// Set up driver, capabilities and axeStartSession here before scanning
//

// Start axeScan
var scanResult = _driver.ExecuteScript("mobile: axeScan");

// Convert result to JSON string
string jsonResult = JsonConvert.SerializeObject(scanResult, Formatting.Indented);

// Create timestamp for filename
string timestamp = DateTime.Now.ToString("yyyy-MM-ddTHH-mm-ss");
string filename = $"axe-scan-result-{timestamp}.json";

// Create reports directory
string reportsDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), 
                                "reports", "axeScans");
Directory.CreateDirectory(reportsDir);

// Save to file
string filepath = Path.Combine(reportsDir, filename);
File.WriteAllText(filepath, jsonResult);

Console.WriteLine($"Axe scan result saved to: {filepath}");

HTML-Bericht und Zusammenfassung erstellen

Erzeugen Sie einen HTML-Bericht für gezielte Scans mit mobile: axeGenerateHtmlReportAndSummary. Durch Hinzufügen dieses Befehls wird ein einzelner zusammengefasster HTML-Bericht und eine Zusammenfassung für alle Scans erstellt, die seit dem Start der Sitzung gesammelt wurden, und der Treiber zieht ihn vom Gerät in ein lokales Verzeichnis - axeHtmlReportPath. Das Standardverzeichnis ist build/AxeDevToolsMobileResults für Android oder ~/AxeDevToolsMobileResults/<UUID> für iOS, aber Sie können einen benutzerdefinierten Ausgabepfad definieren (z. B. ./reports/accessibility), wenn Sie möchten. Der Standardberichtdateiname ist AxeAccessibilityReport, aber auch dieser ist veränderbar. Siehe den dritten Block im folgenden JavaScript-Snippet:

// 1. Authenticate once for the session
await driver.executeScript('mobile: axeStartSession', [{
  apiKey: 'DEQUE_APIKEY',
  axeAccountURL: 'https://axe.deque.com',
}]);

// 2. Run targeted scans across the screens you care about
await driver.executeScript('mobile: axeScan', [{ scanName: 'Login screen' }]);
// ...navigate...
await driver.executeScript('mobile: axeScan', [{ scanName: 'Checkout screen' }]);

// 3. Generate a single aggregated HTML report + summary for the session
const result = await driver.executeScript('mobile: axeGenerateHtmlReportAndSummary', [{
  axeHtmlReportPath: './reports/accessibility', // optional (local dir)
  scanName: 'My Session Report',                // optional
}]);

// result.localDirectory -> local directory the report was saved into
// result.reportFiles    -> generated report file path(s) on the device

Um die Implementierung von axeGenerateHtmlReportAndSummary in anderen Programmiersprachen zu sehen, können Sie sich auf vollständige Automatisierungsbeispiele sowohl für UIAutomator2 als auch für XCUITest beziehen.