Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Alat baru Python Microsoft sangat lazat!

Alat baru Python Microsoft sangat lazat!

WBOY
WBOYke hadapan
2023-04-12 10:55:051388semak imbas

Alat baru Python Microsoft sangat lazat!

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.

Alat baru Python Microsoft sangat lazat!

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.

1. Pengenalan kepada Playwright

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.

2. Pasang Playwright menggunakan

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:

  • Pasang pustaka pergantungan Playwright, yang memerlukan Python3.7+
  • Pasang Chromium, Firefox, WebKit , dsb. untuk menyemak imbas Fail pemacu penyemak imbas

Rakaman

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:

  • -o: Simpan skrip yang dirakam ke fail
  • --sasaran: Tentukan bahasa untuk menjana skrip, termasuk JS dan Python, lalainya ialah Python
  • -b: Tentukan pemacu penyemak imbas

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.

Alat baru Python Microsoft sangat lazat!

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.

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

Penyegerakan

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()

Asynchronous

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())

Versi mudah alih

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.

3 Ringkasan

Penulis drama mempunyai banyak kelebihan berbanding alat ujian automatik sedia ada, termasuk:

Menyokong semua penyemak imbas

  • Diuji pada Chromium, Firefox dan WebKit. Playwright mempunyai liputan API yang lengkap untuk semua penyemak imbas moden, termasuk Google Chrome dan Microsoft Edge (dengan Chromium), Apple Safari (dengan WebKit) dan Mozilla Firefox.
  • Ujian WebKit merentas platform. Uji cara apl anda berkelakuan dalam Apple Safari menggunakan Playwright, dibina dengan WebKit untuk Windows, Linux dan macOS. Diuji secara tempatan dan pada CI.
  • Uji telefon. Uji aplikasi web responsif anda dalam penyemak imbas web mudah alih menggunakan emulasi peranti.
  • Tanpa pengepala dan dengan pengepala. Penulis drama menyokong mod tanpa kepala (tiada UI pelayar) dan tanpa kepala (dengan UI penyemak imbas) untuk semua penyemak imbas dan semua platform. Mod pengepala sesuai untuk penyahpepijatan, manakala mod tanpa pengepala sesuai untuk pelaksanaan CI/awan.

Mempunyai pelaksanaan yang pantas dan andal

  • API auto-tunggu. Interaksi penulis drama secara automatik menunggu sehingga elemen sedia. Ini meningkatkan kebolehpercayaan dan memudahkan proses penulisan ujian.
  • Tiada automasi tamat masa. Penulis drama menerima isyarat penyemak imbas seperti permintaan rangkaian, navigasi halaman dan acara pemuatan halaman untuk menghapuskan gangguan yang terganggu tidur.
  • Kekal selari dengan konteks penyemak imbas. Gunakan semula contoh penyemak imbas tunggal untuk berbilang persekitaran boleh laku konteks penyemak imbas terpencil selari.
  • Pemilih unsur seksual. Penulis drama boleh bergantung pada rentetan yang dihadapi pengguna seperti kandungan teks dan teg kebolehaksesan untuk memilih elemen. Rentetan ini lebih fleksibel daripada pemilih yang digandingkan rapat dengan struktur DOM.

Mempunyai keupayaan automasi yang berkuasa

  • Berbilang domain, halaman dan bingkai. Penulis drama ialah pemacu automasi di luar proses yang tidak terhad oleh skop pelaksanaan JavaScript dalam halaman dan boleh mengautomasikan senario dengan berbilang halaman.
  • Kawalan rangkaian yang berkuasa. Penulis drama memperkenalkan pemintasan rangkaian seluruh konteks untuk menamatkan atau mensimulasikan permintaan rangkaian.
  • Ciri web moden. Penulis drama menyokong komponen web dengan pemilih yang dimasukkan, geolokasi, kebenaran, pekerja web dan API web moden yang lain.
  • Keupayaan untuk merangkumi semua senario. Menyokong muat turun dan muat naik fail, iframe yang tidak diproses, peristiwa input asli dan juga mod gelap.

Tetapi ia juga mempunyai had

  • Sokongan Old Edge dan IE11. Penulis drama tidak menyokong versi lama Microsoft Edge atau IE11 (notis penamatan). Sokongan untuk Microsoft Edge baharu (pada Chromium).
  • Ikatan Bahasa Java: API Penulis Drama tidak tersedia di Java atau Ruby pada masa ini. Ini adalah pengehadan sementara, kerana Playwright direka untuk menyokong pengikatan untuk mana-mana bahasa.
  • Ujian pada peranti mudah alih sebenar: Penulis drama menggunakan penyemak imbas desktop untuk mensimulasikan peranti mudah alih.

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam