

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verfügbare Bibliotheksfunktionen für Python-Canary-Skripte mit Selenium
<a name="CloudWatch_Synthetics_Canaries_Library_Python"></a>

Dieser Abschnitt listet die Selenium-Bibliotheksfunktionen auf, die für Python-Canary-Skripte verfügbar sind

**Topics**
+ [Python- und Selenium-Bibliotheksklassen und Funktionen, die für alle Canarys gelten](#CloudWatch_Synthetics_Library_allcanaries_Python)
+ [Python- und Selenium-Bibliotheksklassen und Funktionen, die nur für UI-Canarys gelten](#CloudWatch_Synthetics_Library_Python_UIcanaries)

## Python- und Selenium-Bibliotheksklassen und Funktionen, die für alle Canarys gelten
<a name="CloudWatch_Synthetics_Library_allcanaries_Python"></a>

Die folgenden CloudWatch Synthetics Selenium-Bibliotheksfunktionen für Python sind für alle Kanarienvögel nützlich.

**Topics**
+ [SyntheticsConfiguration Klasse](#CloudWatch_Synthetics_Library_SyntheticsConfiguration_Python)
+ [SyntheticsLogger Klasse](#CloudWatch_Synthetics_Library_SyntheticsLogger_Python)

### SyntheticsConfiguration Klasse
<a name="CloudWatch_Synthetics_Library_SyntheticsConfiguration_Python"></a>

Sie können die SyntheticsConfiguration Klasse verwenden, um das Verhalten von Synthetics-Bibliotheksfunktionen zu konfigurieren. Sie können diese Klasse beispielsweise verwenden, um die ` executeStep()`-Funktion so zu konfigurieren, dass keine Screenshots erfasst werden.

Sie können CloudWatch Synthetics-Konfigurationen auf globaler Ebene festlegen.

Funktionsdefinitionen:

#### set\$1config (Optionen)
<a name="CloudWatch_Synthetics_Library_setConfig_Python"></a>

```
from aws_synthetics.common import synthetics_configuration
```

` options ` ist ein Objekt, bei dem es sich um eine Reihe konfigurierbarer Optionen für Ihren Canary handelt. In den folgenden Abschnitten werden die möglichen Felder in ` options ` erläutert.
+ `screenshot_on_step_start` (boolean) – Gibt an, ob ein Screenshot erstellt werden soll, bevor ein Schritt gestartet wird.
+ `screenshot_on_step_success` (boolean) – Gibt an, ob nach einem erfolgreichen Schritt ein Screenshot erstellt werden soll.
+ `screenshot_on_step_failure` (boolean) - Ob ein Screenshot erstellt werden soll, nachdem ein Schritt fehlgeschlagen ist.

 **with\$1screenshot\$1on\$1step\$1start(screenshot\$1on\$1step\$1start)** 

Akzeptiert ein boolesches Argument, das angibt, ob ein Screenshot erstellt werden soll, bevor ein Schritt gestartet wird.

 **with\$1screenshot\$1on\$1step\$1success(screenshot\$1on\$1step\$1success)** 

Akzeptiert ein boolesches Argument, das angibt, ob nach erfolgreichem Abschluss eines Schritts ein Screenshot erstellt werden soll.

 **with\$1screenshot\$1on\$1step\$1failure(screenshot\$1on\$1step\$1failure)** 

Akzeptiert ein boolesches Argument, das angibt, ob nach einem Schritt ein Screenshot erstellt werden soll.

 **get\$1screenshot\$1on\$1step\$1start()** 

Gibt zurück, ob ein Screenshot erstellt werden soll, bevor ein Schritt gestartet wird.

 **get\$1screenshot\$1on\$1step\$1success()** 

Gibt zurück, ob ein Screenshot erstellt werden soll, nachdem ein Schritt erfolgreich abgeschlossen wurde.

 **get\$1screenshot\$1on\$1step\$1failure()** 

Gibt zurück, ob ein Screenshot erstellt werden soll, nachdem ein Schritt fehlgeschlagen ist.

 **disable\$1step\$1screenshots()** 

Deaktiviert alle Screenshot-Optionen (get\$1screenshot\$1on\$1step\$1start, get\$1screenshot\$1on\$1step\$1success und get\$1screenshot\$1on\$1step\$1failure).

 **enable\$1step\$1screenshots()** 

Aktiviert alle Screenshot-Optionen (get\$1screenshot\$1on\$1step\$1start, get\$1screenshot\$1on\$1step\$1success und get\$1screenshot\$1on\$1step\$1failure). Standardmäßig sind alle diese Methoden aktiviert.

 **SetConfig (Optionen) in Bezug auf Metriken CloudWatch ** 

Für Kanarienvögel, die das Programm verwenden `syn-python-selenium-1.1` oder später verwenden, können die **(Optionen)** für **SetConfig** die folgenden booleschen Parameter beinhalten, die bestimmen, welche Metriken vom Kanarienvogel veröffentlicht werden. Der Standardwert für jede dieser Optionen ist `true`. Die Optionen, die mit ` aggregated` beginnen, bestimmen, ob die Metrik ohne die ` CanaryName`-Dimension ausgegeben wird. Sie können diese Metriken verwenden, um die aggregierten Ergebnisse für alle Canarys anzuzeigen. Die anderen Optionen bestimmen, ob die Metrik mit der `CanaryName` Dimension ausgegeben wird. Sie können diese Metriken verwenden, um die Ergebnisse für jeden einzelnen Canary anzuzeigen.

Eine Liste der von Canaries ausgegebenen CloudWatch Messwerte finden Sie unter. [CloudWatch von Canaries veröffentlichte Metriken](CloudWatch_Synthetics_Canaries_metrics.md)
+ `failed_canary_metric` (boolean) – Gibt an, ob die ` Failed`-Metrik (mit der `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `failed_requests_metric` (boolean) – Gibt an, ob die `Failed requests`-Metrik (mit der `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `2xx_metric` (boolean) – Gibt an, ob die `2xx`-Metrik (mit der `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `4xx_metric` (boolean) – Gibt an, ob die `4xx`-Metrik (mit der `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `5xx_metric` (boolean) – Gibt an, ob die `5xx`-Metrik (mit der `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `step_duration_metric` (boolean) – Gibt an, ob die `Step duration`-Metrik (mit der `CanaryName`-Dimension `StepName`) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `step_success_metric` (boolean) – Gibt an, ob die `Step success`-Metrik (mit der `CanaryName`-Dimension `StepName`) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `aggregated_failed_canary_metric` (boolean) – Gibt an, ob die `Failed`-Metrik (ohne die `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `aggregated_failed_requests_metric` (boolean) – Gibt an, ob die `Failed Requests`-Metrik (ohne die `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `aggregated_2xx_metric` (boolean) – Gibt an, ob die ` 2xx`-Metrik (ohne die `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `aggregated_4xx_metric` (boolean) – Gibt an, ob die ` 4xx`-Metrik (ohne die `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.
+ `aggregated_5xx_metric` (boolean) – Gibt an, ob die ` 5xx`-Metrik (ohne die `CanaryName`-Dimension) für diesen Canary emittiert werden soll. Der Standardwert ist `true`.

 **with\$12xx\$1metric(2xx\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `2xx`-Metrik mit der `CanaryName`-Dimension für diesen Canary emittiert werden soll.

 **with\$14xx\$1metric(4xx\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `4xx`-Metrik mit der `CanaryName`-Dimension für diesen Canary emittiert werden soll.

 **with\$15xx\$1metric(5xx\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `5xx`-Metrik mit der `CanaryName`-Dimension für diesen Canary emittiert werden soll.

 **withAggregated2xxMetric(aggregated2xxMetric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `2xx`-Metrik mit keiner Dimension für diesen Canary emittiert werden soll.

 **withAggregated4xxMetric(aggregated4xxMetric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `4xx`-Metrik mit keiner Dimension für diesen Canary emittiert werden soll.

 **with\$1aggregated\$15xx\$1metric(aggregated\$15xx\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `5xx`-Metrik mit keiner Dimension für diesen Canary emittiert werden soll.

 **with\$1aggregated\$1failed\$1canary\$1metric (aggregated\$1failed\$1canary\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `Failed`-Metrik mit keiner Dimension für diesen Canary emittiert werden soll.

 **with\$1aggregated\$1failed\$1requests\$1metric (aggregated\$1failed\$1requests\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `Failed requests`-Metrik mit keiner Dimension für diesen Canary emittiert werden soll.

 **with\$1failed\$1canary\$1metric(failed\$1canary\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `Failed`-Metrik mit der `CanaryName`-Dimension für diesen Canary emittiert werden soll.

 **with\$1failed\$1requests\$1metric(failed\$1requests\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `Failed requests`-Metrik mit der `CanaryName`-Dimension für diesen Canary emittiert werden soll.

 **with\$1step\$1duration\$1metric(step\$1duration\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `Duration`-Metrik mit der `CanaryName`-Dimension für diesen Canary emittiert werden soll.

 **with\$1step\$1success\$1metric(step\$1success\$1metric)** 

Akzeptiert ein boolesches Argument, das angibt, ob eine `StepSuccess`-Metrik mit der `CanaryName`-Dimension für diesen Canary emittiert werden soll.

##### Methoden zum Aktivieren oder Deaktivieren von Metriken
<a name="CloudWatch_Synthetics_Python_setConfig_metrics"></a>

 **disable\$1aggregated\$1request\$1metrics()** 

Verhindert, dass der Canary alle Anforderungsmesswerte ausgibt, die ohne ` CanaryName`-Dimension ausgegeben werden.

 **disable\$1request\$1metrics()** 

Deaktiviert alle Anforderungsmetriken, einschließlich aller Canary-Metriken und Metriken, die über alle Canarys aggregiert werden.

 **disable\$1step\$1metrics()** 

Deaktiviert alle Schrittmetriken, einschließlich Metriken für den Schritterfolg und für die Schrittdauer.

 **enable\$1aggregated\$1request\$1metrics()** 

Ermöglicht dem Canary, alle Anforderungsmesswerte auszugeben, die ohne ` CanaryName`-Dimension ausgegeben werden.

 **enable\$1request\$1metrics()** 

Aktiviert alle Anforderungsmetriken, einschließlich aller Canary-Metriken und Metriken, die über alle Canarys aggregiert werden.

 **enable\$1step\$1metrics()** 

Aktiviert alle Schrittmetriken, einschließlich Metriken für den Schritterfolg und für die Schrittdauer.

 **Verwendung in UI-Canarys** 

Importieren Sie zuerst die Synthetics-Abhängigkeit und holen Sie die Konfiguration ab. Legen Sie dann die Konfiguration für jede Option fest, indem Sie die setConfig-Methode mit einer der folgenden Optionen aufrufen.

```
from aws_synthetics.common import synthetics_configuration

synthetics_configuration.set_config(
     {
        "screenshot_on_step_start": False,
        "screenshot_on_step_success": False,
        "screenshot_on_step_failure": True
     }
)

or
```

Oder

```
synthetics_configuration.with_screenshot_on_step_start(False).with_screenshot_on_step_success(False).with_screenshot_on_step_failure(True)
```

Um alle Screenshots zu deaktivieren, verwenden Sie die Funktion () wie in diesem Beispiel. disableStepScreenshots

```
synthetics_configuration.disable_step_screenshots()
```

Sie können Screenshots jederzeit im Code aktivieren oder deaktivieren. Wenn Sie beispielsweise Screenshots nur für einen Schritt deaktivieren möchten, deaktivieren Sie sie, bevor Sie diesen Schritt ausführen, und aktivieren Sie sie dann nach dem Schritt.

##### set\$1config (Optionen) für UI-Canarys
<a name="CloudWatch_Synthetics_Library_Python_UI"></a>

Ab `syn-python-selenium-1.1` kann ` set_config` für UI-Canarys folgende boolesche Parameter enthalten:
+ `continue_on_step_failure`(boolean) — Ob mit der Ausführung des Canary-Skripts fortgefahren werden soll, nachdem ein Schritt fehlgeschlagen ist (dies bezieht sich auf die **ExecuteStep-Funktion**). Wenn Schritte fehlschlagen, wird der Canary-Lauf weiterhin als fehlgeschlagen markiert. Der Standardwert ist `false`.

### SyntheticsLogger Klasse
<a name="CloudWatch_Synthetics_Library_SyntheticsLogger_Python"></a>

`synthetics_logger` schreibt Protokolle auf die Konsole und in eine lokale Protokolldatei auf derselben Protokollebene. Diese Protokolldatei wird nur dann an beide Speicherorte geschrieben, wenn die Protokollebene auf oder unter der gewünschten Protokollierungsebene der aufgerufenen Protokollfunktion liegt.

Den Protokollierungsanweisungen in der lokalen Protokolldatei werden je nach der Protokollebene der aufgerufenen Funktion „DEBUG“ „INFO“ usw. vorangestellt.

Die Verwendung von `synthetics_logger` ist nicht erforderlich, um eine Protokolldatei zu erstellen, die in Ihren Amazon-S3-Ergebnisspeicherort hochgeladen wird. Sie können stattdessen eine andere Protokolldatei im `/tmp`-Ordner erstellen. Alle Dateien, die unter dem `/tmp`-Ordner erstellt wurden, werden als Artefakte an den Ergebnisspeicherort im S3 Bucket hochgeladen.

Verwendung von `synthetics_logger`:

```
from aws_synthetics.common import synthetics_logger
```

****Nützliche Funktionsdefinitionen:

Protokollebene abrufen:

```
log_level = synthetics_logger.get_level()
```

Protokollebene festlegen:

```
synthetics_logger.set_level()
```

Protokollieren Sie eine Nachricht mit einer angegebenen Ebene. Die Ebene kann `DEBUG`, ` INFO`, `WARN` oder `ERROR` sein, wie in den folgenden Syntaxbeispielen:

```
synthetics_logger.debug(message, *args, **kwargs)
```

```
synthetics_logger.info(message, *args, **kwargs)
```

```
synthetics_logger.log(message, *args, **kwargs)
```

```
synthetics_logger.warning(message, *args, **kwargs)
```

```
synthetics_logger.error(message, *args, **kwargs)
```

Informationen zu Debug-Parametern finden Sie in der Python-Standarddokumentation unter [logging.debug](https://docs.python.org/3/library/logging.html#logging.debug)

In diesen Protokollierungsfunktionen ist das `message` die Zeichenfolge für das Nachrichtenformat. Die `args` sind die Argumente, die mit dem Zeichenfolgen-Formatierungsoperator in `msg` zusammengeführt werden.

Es gibt drei Schlüsselwortargumente in `kwargs`:
+ `exc_info` – Wird nicht als false ausgewertet, fügt der Protokollierungsmeldung Ausnahmeinformationen hinzu.
+ `stack_info` – Standardwert „false“. Bei „true“ werden der Protokollierungsnachricht Stackinformationen hinzugefügt, einschließlich des eigentlichen Protokollierungsaufrufs.
+ `extra` – Das dritte optionale Schlüsselwortargument, mit dem Sie ein Wörterbuch übergeben können, das verwendet wird, um das `__dict__` von `LogRecord`, das für das Protokollierungsereignis erstellt wurde, mit benutzerdefinierten Attributen aufzufüllen.

Beispiele:

Protokollieren Sie eine Nachricht mit der Ebene `DEBUG`:

```
synthetics_logger.debug('Starting step - login.')
```

Protokollieren Sie eine Nachricht mit der Ebene `INFO`. `logger.log` ist ein Synonym für `logger.info`:

```
synthetics_logger.info('Successfully completed step - login.')
```

oder

```
synthetics_logger.log('Successfully completed step - login.')
```

Protokollieren Sie eine Nachricht mit der Ebene `WARN`:

```
synthetics_logger.warning('Warning encountered trying to publish %s', 'CloudWatch Metric')
```

Protokollieren Sie eine Nachricht mit der Ebene `ERROR`:

```
synthetics_logger.error('Error encountered trying to publish %s', 'CloudWatch Metric')
```

Protokollieren einer Ausnahme:

```
synthetics_logger.exception(message, *args, **kwargs)
```

Protokolliert eine Nachricht mit der Ebene `ERROR`. Ausnahmeinformationen werden der Protokollierungsmeldung hinzugefügt. Sie sollten diese Funktion nur von einem Exception-Handler aufrufen.

Informationen zu Ausnahmeparametern finden Sie in der Python-Standarddokumentation unter [logging.exception](https://docs.python.org/3/library/logging.html#logging.exception)

Das Format für die Nachricht ist `message`. Die `args` sind die Argumente, die mit dem Zeichenfolgen-Formatierungsoperator in `msg` zusammengeführt werden.

Es gibt drei Schlüsselwortargumente in `kwargs`:
+ `exc_info` – Wird nicht als false ausgewertet, fügt der Protokollierungsmeldung Ausnahmeinformationen hinzu.
+ `stack_info` – Standardwert „false“. Bei „true“ werden der Protokollierungsnachricht Stackinformationen hinzugefügt, einschließlich des eigentlichen Protokollierungsaufrufs.
+ `extra` – Das dritte optionale Schlüsselwortargument, mit dem Sie ein Wörterbuch übergeben können, das verwendet wird, um das `__dict__` von `LogRecord`, das für das Protokollierungsereignis erstellt wurde, mit benutzerdefinierten Attributen aufzufüllen.

Beispiel:

```
synthetics_logger.exception('Error encountered trying to publish %s', 'CloudWatch Metric')
```

## Python- und Selenium-Bibliotheksklassen und Funktionen, die nur für UI-Canarys gelten
<a name="CloudWatch_Synthetics_Library_Python_UIcanaries"></a>

Die folgenden CloudWatch Synthetics Selenium-Bibliotheksfunktionen für Python sind nur für UI Canaries nützlich.

**Topics**
+ [SyntheticsBrowser Klasse](#CloudWatch_Synthetics_Library_Python_SyntheticsBrowser)
+ [SyntheticsWebDriver Klasse](#CloudWatch_Synthetics_Library_Python_SyntheticsWebDriver)

### SyntheticsBrowser Klasse
<a name="CloudWatch_Synthetics_Library_Python_SyntheticsBrowser"></a>

**Anmerkung**  
`SyntheticsBrowser` wird nur im Chrome-Browser unterstützt.

Wenn Sie eine Browserinstance durch Aufrufen von `synthetics_webdriver.Chrome()` erstellen, ist die zurückgegebene Browserinstance vom Typ `SyntheticsBrowser`. Die ` SyntheticsBrowser` Klasse erbt die WebDriver Klasse und bietet Zugriff auf alle Methoden, die von der [WebDriver](https://www.selenium.dev/documentation/webdriver/)bereitgestellt werden. Es steuert den Browser und ermöglicht es dem Canary-Skript ChromeDriver, den Browser zu steuern, sodass Selenium WebDriver mit Synthetics arbeiten kann.

**Anmerkung**  
Synthetics überschreibt die WebDriver [Quit-Methode,](https://www.selenium.dev/selenium/docs/api/py/selenium_webdriver_firefox/selenium.webdriver.firefox.webdriver.html) sodass keine Aktion ausgeführt wird. Sie müssen sich keine Gedanken darüber machen, den Browser zu beenden, da Synthetics das für Sie erledigt.

Zusätzlich zu den standardmäßigen Selenium-Methoden bietet es auch die folgenden Methoden. 

**Topics**
+ [set\$1viewport\$1size (Breite, Höhe)](#CloudWatch_Synthetics_Library_set_viewport_size)
+ [save\$1screenshot (Dateiname, Suffix)](#CloudWatch_Synthetics_Library_save_screenshot)

#### set\$1viewport\$1size (Breite, Höhe)
<a name="CloudWatch_Synthetics_Library_set_viewport_size"></a>

Legt das Ansichtsfenster des Browsers fest. Beispiel:

```
browser.set_viewport_size(1920, 1080)
```

#### save\$1screenshot (Dateiname, Suffix)
<a name="CloudWatch_Synthetics_Library_save_screenshot"></a>

Speichert Screenshots im `/tmp`-Verzeichnis. Die Screenshots werden von dort in den Ordner Canary-Artefakte im S3 Bucket hochgeladen.

*Dateiname* ist der Dateiname für den Screenshot, und *Suffix* ist eine optionale Zeichenfolge, die für die Benennung des Screenshots verwendet werden kann.

Beispiel:

```
browser.save_screenshot('loaded.png', 'page1')
```

### SyntheticsWebDriver Klasse
<a name="CloudWatch_Synthetics_Library_Python_SyntheticsWebDriver"></a>

Um diese Klasse zu verwenden, verwenden Sie Folgendes in Ihrem Skript:

```
from aws_synthetics.selenium import synthetics_webdriver
```

**Topics**
+ [add\$1execution\$1error (errorMessage, ex);](#CloudWatch_Synthetics_Library_Python_addExecutionError)
+ [add\$1user\$1agent (user\$1agent\$1str)](#CloudWatch_Synthetics_Library_add_user_agent)
+ [execute\$1step (step\$1name, function\$1to\$1execute)](#CloudWatch_Synthetics_Library_Python_execute_step)
+ [get\$1http\$1response (URL)](#CloudWatch_Synthetics_Library_Python_get_http_response)
+ [Chrome()](#CloudWatch_Synthetics_Library_Python_Chrome)

#### add\$1execution\$1error (errorMessage, ex);
<a name="CloudWatch_Synthetics_Library_Python_addExecutionError"></a>

`errorMessage` beschreibt den Fehler und `ex` ist die aufgetretene Ausnahme

Sie können Folgendes verwenden:`add_execution_error`, um Ausführungsfehler für Ihren Canary festzulegen. Es lässt den Canary fehlschlagen, ohne die Skriptausführung zu unterbrechen. Es wirkt sich auch nicht auf Ihre `successPercent`-Metriken aus.

Sie sollten Fehler nur dann als Ausführungsfehler verfolgen, wenn sie nicht wichtig sind, um den Erfolg oder Misserfolg Ihres Canary-Skripts anzuzeigen.

Ein Beispiel für die Verwendung von `add_execution_error` ist das folgende. Sie überwachen die Verfügbarkeit Ihres Endpunkts und machen Screenshots, nachdem die Seite geladen wurde. Da der Fehler beim Erstellen eines Screenshots die Verfügbarkeit des Endpunkts nicht bestimmt, können Sie beim Erstellen von Screenshots aufgetretene Fehler abfangen und sie als Ausführungsfehler hinzufügen. Ihre Verfügbarkeitsmetriken zeigen weiterhin an, dass der Endpunkt aktiv ist und ausgeführt wird, aber Ihr Canary-Status wird als fehlgeschlagen markiert. Der folgende Codeblock fängt einen solchen Fehler ab und fügt ihn als Ausführungsfehler hinzu.

```
try:
    browser.save_screenshot("loaded.png")  
except Exception as ex:
   self.add_execution_error("Unable to take screenshot", ex)
```

#### add\$1user\$1agent (user\$1agent\$1str)
<a name="CloudWatch_Synthetics_Library_add_user_agent"></a>

Hängt den Wert von `user_agent_str` an den Benutzer-Agent-Header des Browsers an. Sie müssen `user_agent_str` zuweisen, bevor Sie die Browserinstance erstellen.

Beispiel:

```
await synthetics_webdriver.add_user_agent('MyApp-1.0')
```

`add_user_agent` sollte innerhalb einer `async`-Funktion verwendet werden.

#### execute\$1step (step\$1name, function\$1to\$1execute)
<a name="CloudWatch_Synthetics_Library_Python_execute_step"></a>

Verarbeitet eine Funktion. Folgendes wird ebenfalls bewirkt:
+ Protokolliert, dass der Schritt gestartet wurde.
+ Erfasst einen Screenshot mit dem Namen `<stepName>-starting`.
+ Startet einen Timer.
+ Führt die bereitgestellte Funktion aus.
+ Wenn die Funktion normal zurückgegeben wird, gilt sie als „bestanden“. Wenn die Funktion scheitert, gilt sie als fehlgeschlagen.
+ Beendet den Timer.
+ Protokolliert, ob der Schritt bestanden oder fehlgeschlagen ist
+ Erfasst einen Screenshot mit dem Namen `<stepName>-succeeded` oder ` <stepName>-failed`.
+ Gibt die Metrik `stepName` `SuccessPercent` aus, wobei „100“ für erfolgreich bzw. „0“ für nicht erfolgreich steht.
+ Gibt die Metrik `stepName` `Duration` aus, mit einem Wert basierend auf der Start- und der Endzeit des Schrittes.
+ Gibt schließlich zurück, was die `functionToExecute` zurückgegeben hat, oder wiederholt einen Throw-Vorgang von `functionToExecute`.

Beispiel:

```
from selenium.webdriver.common.by import By

def custom_actions():
        #verify contains
        browser.find_element(By.XPATH, "//*[@id=\"id_1\"][contains(text(),'login')]")
        #click a button
        browser.find_element(By.XPATH, '//*[@id="submit"]/a').click()

    await synthetics_webdriver.execute_step("verify_click", custom_actions)
```

#### get\$1http\$1response (URL)
<a name="CloudWatch_Synthetics_Library_Python_get_http_response"></a>

Stellt eine HTTP-Anforderung an die angegebene URL und gibt den Antwortcode der HTTP-Anforderung zurück. Wenn während der HTTP-Anforderung eine Ausnahme aufgetreten ist, wird stattdessen eine Zeichenfolge mit dem Wert „error“ zurückgegeben.

Beispiel:

```
response_code = syn_webdriver.get_http_response(url)
if not response_code or response_code == "error" or response_code < 200 or response_code > 299:
    raise Exception("Failed to load page!")
```

#### Chrome()
<a name="CloudWatch_Synthetics_Library_Python_Chrome"></a>

Startet eine Instance des Chromium-Browsers und gibt die erstellte Instance des Browsers zurück.

Beispiel:

```
browser = synthetics_webdriver.Chrome()
browser.get("https://example.com/)
```

Verwenden Sie folgende Parameter, um einen Browser im Inkognito-Modus zu starten:

```
add_argument('——incognito')
```

Verwenden Sie folgende Parameter, um Proxy-Einstellungen hinzuzufügen:

```
add_argument('--proxy-server=%s' % PROXY)
```

Beispiel:

```
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("——incognito")
browser = syn_webdriver.Chrome(chrome_options=chrome_options)
```