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.
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.
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.
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 :
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 :
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.
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.
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()
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())
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.
playwright présente de nombreux avantages par rapport aux outils de test automatisés existants, notamment :
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!