Référence API Playwright
Playwright offre un ensemble d'API extrêmement puissantes qui rendent l'automatisation du navigateur plus stable et efficace que jamais. Ce chapitre se concentre sur les API les plus critiques pour les scénarios commerciaux réels.
1. Locators (Localisateurs) : La nouvelle norme
Les Locators sont la méthode recommandée par Playwright pour trouver et interagir avec les éléments. Ils intègrent des mécanismes d'attente automatique et de nouvelle tentative.
Sélection d'éléments
// Par texte
await page.getByText('Se connecter').click();
// Par label (pour les formulaires)
await page.getByLabel('Nom d\'utilisateur').fill('mon_compte');
// Par sélecteur CSS/XPath
await page.locator('#submit-button').click();Avantages des Locators
- Attente automatique : Attend que l'élément soit visible et prêt avant d'agir.
- Stabilité : Réessaie automatiquement si l'élément n'est pas immédiatement disponible.
- Lisibilité : Les méthodes comme
getByTextougetByRolerendent le code plus proche du langage humain.
2. Navigation et état de la page
// Naviguer vers une URL
await page.goto('https://www.example.com');
// Attendre que la navigation soit terminée
await page.waitForNavigation();
// Obtenir l'URL et le titre actuels
const url = page.url();
const title = await page.title();3. Interaction avec les éléments
// Cliquer sur un élément
await page.locator('.btn-save').click();
// Saisir du texte
await page.locator('[name="q"]').fill('recherche Mbbrowser');
// Cocher une case
await page.locator('#terms').check();
// Sélectionner une option dans un menu déroulant
await page.locator('select#country').selectOption('FR');4. Interception et modification réseau
L'une des fonctionnalités les plus puissantes de Playwright est sa capacité à surveiller ou modifier le trafic réseau.
// Bloquer le chargement des images pour économiser de la bande passante
await page.route('**/*.{png,jpg,jpeg}', route => route.abort());
// Intercepter et modifier une réponse API
await page.route('**/api/v1/user/info', async route => {
const response = await route.fetch();
const json = await response.json();
json.name = "Utilisateur Simulé";
await route.fulfill({ response, json });
});5. Captures d'écran et PDF
// Prendre une capture d'écran de la page entière
await page.screenshot({ path: 'screenshot.png', fullPage: true });
// Capturer un élément spécifique
await page.locator('.dashboard-stat').screenshot({ path: 'stat.png' });6. Opérations multi-onglets et contextes
Playwright gère nativement plusieurs pages au sein d'un même contexte.
// Écouter l'ouverture d'un nouvel onglet
const [newPage] = await Promise.all([
context.waitForEvent('page'),
page.locator('a[target="_blank"]').click()
]);
await newPage.waitForLoadState();
console.log(await newPage.title());IMPORTANT
N'oubliez pas que dans le cadre de Mbbrowser, vous devez utiliser le contexte par défaut via browser.contexts()[0] pour conserver l'isolation des empreintes et des cookies.
TIP
Vous maîtrisez les API ? Le chapitre suivant Exemples de scripts complets vous propose des modèles prêts à l'emploi pour vos besoins réels.
