Maison  >  Article  >  développement back-end  >  Cet outil Python pour débutants produit par Microsoft est tellement délicieux !

Cet outil Python pour débutants produit par Microsoft est tellement délicieux !

WBOY
WBOYavant
2023-04-12 10:55:051346parcourir

Cet outil Python pour débutants produit par Microsoft est tellement délicieux !

Bonjour à tous, je suis une recrue !

J'ai récemment visité le site Web de G et découvert que Microsoft avait open source un projet appelé "playwright-python" en tant que projet en plein essor.

Cet outil Python pour débutants produit par Microsoft est tellement délicieux !

Playwright est un pur outil d'automatisation pour le langage Python. Il peut exécuter automatiquement les navigateurs Chromium, Firefox et WebKit via une seule API, sans même écrire de code, pour réaliser des fonctions d'automatisation.

Bien que l'outil de test Selenium dispose d'une documentation complète, son coût d'apprentissage interdit à de nombreux novices. En revanche, dramaturge-python est simplement un artefact pour les novices.

Est-ce que Playwright fonctionne vraiment avec Python ? La réponse est oui, Microsoft est prêt avec Playwright pour Python. Des modifications brutales de l'API peuvent survenir. Mais il y a de fortes chances que cela n'arrive pas, et Microsoft affirme qu'il ne le fera que s'il sait que cela améliorera votre expérience avec la nouvelle bibliothèque.

Cependant, Microsoft rappelle également que certains cas particuliers d'API spécifiques à un fournisseur ne sont pas encore pris en charge, comme la collecte du suivi Chromium, les rapports de couverture, etc.

1. Introduction à Playwright

Playwright est une puissante bibliothèque Python qui peut effectuer automatiquement des opérations automatisées sur les navigateurs grand public tels que Chromium, Firefox et WebKit en utilisant une seule API et prend en charge l'exécution en modes sans tête et sans tête.

La technologie d'automatisation fournie par Playwright est verte, puissante, fiable et rapide, prenant en charge les systèmes d'exploitation Linux, Mac et Windows.

Certains amis ont également fait l'éloge de cela : en tant que pur outil d'automatisation pour le langage Python, ce projet libère le code et réalise des fonctions d'automatisation.

2. Installez Playwright en utilisant

L'installation de Playwright est très simple et peut être résolue en deux étapes.

安装playwright库
pip install playwright
安装浏览器驱动文件(安装过程稍微有点慢)
python -m playwright install

Les deux opérations pip ci-dessus sont installées séparément :

  • Installer la bibliothèque de dépendances Playwright, qui nécessite Python3.7+
  • Installer les fichiers du pilote de Chromium, Firefox, WebKit et d'autres navigateurs

Enregistrement

Vous ne le faites pas Nous n'avons pas besoin d'écrire une ligne de code pour utiliser Playwright, il nous suffit d'utiliser manuellement le navigateur, il enregistrera nos opérations, puis générera automatiquement des scripts de code.

Ce qui suit est le codegen de commande enregistré, une seule ligne.

命令行键入 --help 可看到所有选项
python -m playwright codegen

L'utilisation de codegen peut être visualisée en utilisant --help S'il est simple à utiliser, ajoutez simplement le lien url directement après la commande. Si vous avez d'autres besoins, vous pouvez ajouter des options.

python -m playwright codegen --help
Usage: index codegen [options] [url]
open page and generate code for user actions
Options:
 -o, --output <file name>saves the generated script to a file
 --target <language> language to use, one of javascript, python, python-async, csharp (default: "python")
 -h, --helpdisplay help for command
Examples:
 $ codegen
 $ codegen --target=python
 $ -b webkit codegen https://example.com

options signifiant :

  • -o : Enregistrez le script enregistré dans un fichier
  • --target : Spécifiez le langage pour générer le script, il existe deux types : JS et Python, la valeur par défaut est Python
  • -b : Spécifiez le pilote du navigateur

Par exemple, je souhaite effectuer une recherche sur baidu.com, utiliser le pilote Chrome et enregistrer les résultats sous forme de fichier Python my.py.

python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com

Après avoir entré la ligne de commande, le navigateur s'ouvrira automatiquement, et vous pourrez alors voir que chaque action sur le navigateur sera automatiquement traduite en code, comme indiqué ci-dessous.

Cet outil Python pour débutants produit par Microsoft est tellement délicieux !

Fermez automatiquement le navigateur une fois terminé et enregistrez le script d'automatisation généré dans un fichier py.

from playwright import sync_playwright
def run(playwright):
browser = playwright.chromium.launch(headless=False)
context = browser.newContext()
# Open new page
page = context.newPage()
page.goto("https://www.baidu.com/")
page.click("input[name="wd"]")
page.fill("input[name="wd"]", "jingdong")
page.click("text="京东"")
# Click //a[normalize-space(.)='京东JD.COM官网 多快好省 只为品质生活']
with page.expect_navigation():
 with page.expect_popup() as popup_info:
 page.click("//a[normalize-space(.)='京东JD.COM官网 多快好省 只为品质生活']")
 page1 = popup_info.value
# ---------------------
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright

De plus, dramaturge fournit également des interfaces API synchrones et asynchrones, les documents sont les suivants.

  • Lien : https://microsoft.github.io/playwright-python/index.html

Synchronisation

Exemple de code ci-dessous : Ouvrez trois navigateurs dans l'ordre, accédez à la recherche baidu, prenez une capture d'écran et quittez.

from playwright import sync_playwright
with sync_playwright() as p:
for browser_type in [p.chromium, p.firefox, p.webkit]:
 browser = browser_type.launch()
 page = browser.newPage()
 page.goto('https://baidu.com/')
 page.screenshot(path=f'example-{browser_type.name}.png')
 browser.close()

Asynchrone

Les opérations asynchrones peuvent être combinées avec asyncio pour effectuer trois opérations de navigateur en même temps.

import asyncio
from playwright import async_playwright
async def main():
async with async_playwright() as p:
 for browser_type in [p.chromium, p.firefox, p.webkit]:
 browser = await browser_type.launch()
 page = await browser.newPage()
 await page.goto('http://baidu.com/')
 await page.screenshot(path=f'example-{browser_type.name}.png')
 await browser.close()
 asyncio.get_event_loop().run_until_complete(main())

Version mobile

Ce qui est encore plus étonnant, c'est que le dramaturge peut également prendre en charge la simulation de navigateur mobile. Ce qui suit est un morceau de code fourni par la documentation officielle, qui simule le navigateur Safari sur l'iPhone 11 pro à un emplacement géographique donné. Tout d'abord, accédez à maps.google.com, puis effectuez le positionnement et prenez une capture d'écran.

from playwright import sync_playwright
with sync_playwright() as p:
iphone_11 = p.devices['iPhone 11 Pro']
browser = p.webkit.launch(headless=False)
context = browser.newContext(
 **iphone_11,
 locale='en-US',
 geolocation={ 'longitude': 12.492507, 'latitude': 41.889938 },
 permissions=['geolocation']
)
page = context.newPage()
page.goto('https://maps.google.com')
page.click('text="Your location"')
page.screenshot(path='colosseum-iphone.png')
browser.close()

De plus, il peut également être utilisé avec le plug-in pytest. Si vous êtes intéressé, vous pouvez l'essayer vous-même.

3. Résumé

playwright présente de nombreux avantages par rapport aux outils de test automatisés existants, notamment :

Prend en charge tous les navigateurs

  • Testé sur Chromium, Firefox et WebKit. Playwright dispose d'une couverture API complète pour tous les navigateurs modernes, notamment Google Chrome et Microsoft Edge (avec Chromium), Apple Safari (avec WebKit) et Mozilla Firefox.
  • Tests WebKit multiplateformes. Testez le comportement de votre application dans Apple Safari à l'aide de Playwright, créé avec WebKit pour Windows, Linux et macOS. Testé localement et sur CI.
  • Testez le téléphone. Testez vos applications Web réactives dans les navigateurs Web mobiles à l’aide de l’émulation d’appareil.
  • Sans en-tête et avec en-tête. Playwright prend en charge les modes sans tête (pas d'interface utilisateur du navigateur) et sans tête (avec interface utilisateur du navigateur) pour tous les navigateurs et toutes les plates-formes. Le mode en-tête convient au débogage, tandis que le mode sans en-tête convient à l'exécution CI/cloud.

Dispose d'une exécution rapide et fiable

  • API d'attente automatique. Les interactions avec le dramaturge attendent automatiquement que l'élément soit prêt. Cela améliore la fiabilité et simplifie le processus de rédaction des tests.
  • Pas d'automatisation du délai d'attente. Playwright reçoit les signaux du navigateur tels que les requêtes réseau, la navigation dans les pages et les événements de chargement de pages pour éliminer la gêne liée au sommeil interrompu.
  • Restez parallèle au contexte du navigateur. Réutilisez une seule instance de navigateur pour plusieurs environnements exécutables de contexte de navigateur isolés et parallèles.
  • Sélecteur d'éléments sexuels. Le dramaturge peut sélectionner des éléments en s'appuyant sur des chaînes destinées à l'utilisateur, telles que le contenu textuel et les balises d'accessibilité. Ces chaînes sont plus flexibles que les sélecteurs étroitement couplés à la structure DOM.

Avec de puissantes fonctionnalités d'automatisation

  • Plusieurs domaines, pages et cadres. Playwright est un pilote d'automatisation hors processus qui n'est pas limité par la portée de l'exécution de JavaScript au sein d'une page et peut automatiser des scénarios comportant plusieurs pages.
  • Contrôle réseau puissant. Playwright introduit l'interception de réseau à l'échelle du contexte pour terminer ou simuler les requêtes réseau.
  • Fonctionnalités Web modernes. Playwright prend en charge les composants Web avec des sélecteurs insérés, la géolocalisation, les autorisations, les travailleurs Web et d'autres API Web modernes.
  • Capacité à couvrir tous les scénarios. Prend en charge les téléchargements et téléchargements de fichiers, les iframes hors processus, les événements d'entrée natifs et même le mode sombre.

Mais il a aussi des limites

  • Support Old Edge et IE11. Playwright ne prend pas en charge les anciennes versions de Microsoft Edge ou IE11 (avis de dépréciation). Prise en charge du nouveau Microsoft Edge (sur Chromium).
  • Java Language Binding : L'API Playwright n'est actuellement pas disponible en Java ou Ruby. Il s'agit d'une limitation temporaire, car Playwright est conçu pour prendre en charge les liaisons pour n'importe quelle langue.
  • Test sur de vrais appareils mobiles : Playwright utilise un navigateur de bureau pour simuler des appareils mobiles.

Bien qu'il existe certaines limitations, Playwright a maintenant été mis à jour vers la version 1.7.0. Avec chaque génération de mises à jour, le système sera plus parfait. En tant qu'outil novice, il sauve tellement tout le monde que nous pensons que son avenir sera assuré. de mieux en mieux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer