Helo semua, saya seorang pemula!
Baru-baru ini saya melawat tapak web G dan mendapati bahawa Microsoft telah membuka sumber terbuka projek yang dipanggil "playwright-python" sebagai projek yang semakin meningkat.
Penulis drama ialah alat automasi tulen untuk bahasa Python Ia boleh melaksanakan penyemak imbas Chromium, Firefox dan WebKit secara automatik melalui satu API .
Walaupun alat ujian selenium mempunyai dokumentasi lengkap, kos pembelajarannya melarang ramai orang baru. Sebaliknya, penulis drama-python hanyalah artifak untuk orang baru.
Adakah Playwright benar-benar berfungsi dengan Python? Jawapannya ya, Microsoft sudah bersedia dengan Playwright untuk Python. Perubahan API yang melanggar mungkin berlaku. Tetapi kemungkinannya adalah bahawa itu tidak akan berlaku, dan Microsoft berkata ia hanya akan berbuat demikian jika mereka tahu ia akan meningkatkan pengalaman anda dengan perpustakaan baharu.
Walau bagaimanapun, Microsoft juga mengingatkan bahawa beberapa kes sudut API khusus vendor belum lagi disokong, seperti mengumpul penjejakan Chromium, pelaporan liputan, dsb.
Playwright ialah perpustakaan Python yang berkuasa yang boleh secara automatik melaksanakan operasi automatik pada penyemak imbas arus perdana seperti Chromium, Firefox dan WebKit menggunakan hanya satu API, dan juga menyokong penyemak imbas tanpa kepala mod ., operasi mod tanpa kepala.
Teknologi automasi yang disediakan oleh Playwright adalah hijau, berkuasa, boleh dipercayai dan pantas serta menyokong sistem pengendalian Linux, Mac dan Windows.
Sesetengah rakan turut memuji ini: Sebagai alat automasi tulen untuk bahasa Python, projek ini membebaskan kod dan merealisasikan fungsi automasi.
Pemasangan Playwright sangat mudah dan boleh diselesaikan dalam dua langkah.
安装playwright库 pip install playwright 安装浏览器驱动文件(安装过程稍微有点慢) python -m playwright install
Dua operasi pip di atas dipasang secara berasingan:
Menggunakan Playwright tidak memerlukan menulis baris kod Kami hanya perlu mengendalikan penyemak imbas secara manual, dan ia akan melakukannya merekodkan operasi kami dan kemudian menjana skrip kod secara automatik.
Berikut ialah codegen arahan yang direkodkan, hanya satu baris.
命令行键入 --help 可看到所有选项 python -m playwright codegen
Penggunaan codegen boleh dilihat menggunakan --help Jika ia mudah digunakan, tambahkan pautan url terus selepas arahan Jika anda mempunyai keperluan lain, anda boleh menambah pilihan.
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
maksud pilihan:
Contohnya, saya ingin mencari di baidu.com, gunakan pemacu kromium dan simpan hasil sebagai fail python saya.
python -m playwright codegen --target python -o 'my.py' -b chromium https://www.baidu.com
Selepas memasuki baris arahan, penyemak imbas akan dibuka secara automatik, dan kemudian anda dapat melihat bahawa setiap tindakan pada penyemak imbas akan diterjemahkan secara automatik ke dalam kod, seperti yang ditunjukkan di bawah.
Tutup penyemak imbas secara automatik selepas selesai dan simpan skrip automasi yang dijana pada fail 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
Selain itu, penulis drama juga menyediakan antara muka API segerak dan tak segerak, dokumennya adalah seperti berikut.
Kod sampel berikut: Buka mengikut urutan Untuk tiga penyemak imbas, pergi ke Baidu untuk mencari, mengambil tangkapan skrin dan keluar.
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()
Operasi tak segerak boleh digabungkan dengan asyncio untuk melaksanakan tiga operasi penyemak imbas pada masa yang sama.
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())
Apa yang lebih menakjubkan ialah penulis drama juga boleh menyokong simulasi penyemak imbas mudah alih. Berikut ialah sekeping kod yang disediakan oleh dokumen rasmi, yang mensimulasikan penyemak imbas Safari pada iPhone 11 pro di lokasi geografi tertentu Mula-mula, navigasi ke maps.google.com, kemudian lakukan penentududukan dan ambil tangkapan skrin.
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()
Selain itu, ia juga boleh digunakan dengan pytest plug-in Jika anda berminat, anda boleh mencubanya sendiri.
Penulis drama mempunyai banyak kelebihan berbanding alat ujian automatik sedia ada, termasuk:
Walaupun terdapat beberapa pengehadan, pengarang drama kini telah dikemas kini kepada versi 1.7.0 Dengan setiap generasi kemas kini, sistem akan menjadi lebih sempurna Sebagai artifak pemula, ia menyelamatkan semua orang , kami percaya masa depannya akan menjadi lebih baik dan lebih baik.
Atas ialah kandungan terperinci Alat baru Python Microsoft sangat lazat!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!