Modul Selpy adalah memiliki semua metode umum yang akan digunakan dalam otomatisasi UI fungsional dalam model objek halaman. Selpy juga bertenaga untuk memiliki fitur snapshot yang akan menyimpan data dari UI ke file jika diperlukan. Ini pada gilirannya mengurangi upaya pemeliharaan data uji.

Tambahkan baris ini ke File Persyaratan.txt Aplikasi Anda:
selpy==<version>
Dan kemudian mengeksekusi:
pip3 install -r requirements.txt
Atau instal sendiri sebagai:
pip3 install selpy
Modul ini dibangun untuk menggantikan metode perpustakaan dalam kerangka Selpy-Python. Ini memungkinkan kami untuk berbagi metode di antara tim yang berbeda dan sepenuhnya mengabaikan pekerjaan yang berulang. Untuk detail lebih lanjut tentang model objek halaman untuk otomatisasi UI fungsional verifikasi halaman dokumentasi selpu python.
Tambahkan semua metode baru di dalam /selpy/ path dan tambahkan impor kelas di dalam file __init__.py di jalur yang sama sehingga kelas yang baru ditambahkan dapat diimpor dengan menggunakan modul ini.
Untuk mengimpor penggunaan modul ini,
import selpy
Untuk mengimpor kelas tertentu dalam penggunaan modul ini,
from selpy.driver import Driver
File driver memegang semua tindakan umum yang dieksekusi oleh driver. Memulai pengemudi oleh,
driver = Driver()
driver akan memegang objek selenium webdriver.
Untuk mengonfigurasi kemampuan driver, kita harus menentukan detail di global_data.yml di Selpy-Python.
Kelas ini untuk mendeklarasikan pelacak selenium dalam model objek halaman. Anda dapat mendeklarasikan locator sebagai berikut,
class AmazonHomePageLocator:
# Static locators
amazon_logo = Locator("css selector", "div#nav-logo a[aria-label='Amazon']")
amazon_search_categories = Locator("css selector", "div.nav-search-scope select.nav-search-dropdown")
def __init__(self):
print("Locators for Amazon home page")
# Dynamic locators
@staticmethod
def amazon_search_category_list(string):
return Locator("xpath", "//select[contains(@class,'nav-search-dropdown')]//option[text()='%s']" % string)
Untuk menggunakan metode locator, kita perlu melewati jenis locator dan elemen locator yang sebenarnya. Jenis Locator harus disebutkan dengan cara berikut untuk memungkinkan selpy memproses locator.
CSS - 'css selector'
XPATH - 'xpath'
ID - 'id'
NAME - 'name'
LINK TEXT - 'link text'
PARTIAL LINK TEXT - 'partial link text'
TAG NAME - 'tag name'
CLASS NAME - 'class name'
Kelas ini adalah untuk menyimpan konfigurasi waktu lari untuk modul ini. Semacam memcached atau redis untuk kerangka kerja kami. Data waktu lari terpusat yang diperlukan oleh modul lain sedang disimpan di sini dan ditarik kembali oleh modul lain.
Di sinilah logika fitur SNAP yang sebenarnya ada. Untuk menyimpan data UI ke dalam file dinamis, seseorang harus menjalankan tes dengan,
snap=1 pytest
Tapi, hanya ini yang tidak akan memastikan data disimpan ke file dinamis. Kita harus mengirim skrip kode otomatisasi mereka sedemikian rupa sehingga fitur SNAP didukung. Misalnya seseorang dapat melihat ke kerangka kerja selpy-python di dalam Tests/amazon.py
Setelah menjalankan tes dalam mode normal pytest data dinamis tidak akan ditimpa melainkan akan menegaskan data yang ada di UI dengan file data dinamis.
Agar fitur ini berjalan dengan lancar dan untuk mengakses variabel dengan cara yang lebih halus, orang harus mengkonfigurasi param -param berikut dalam kerangka kerja mereka dalam metode pytest_configure (sehingga variabel jalur ini akan diatur untuk memulai pytest).
from selpy.store import Store
def pytest_configure(config):
# Configuring the selpy with data path location
Store.global_data_path = os.path.dirname(os.path.abspath(__file__)).replace("/Tests", "") + '/Data/GlobalData/global_data.yml'
Store.static_data_path = os.path.dirname(os.path.abspath(__file__)).replace("/Tests", "") + '/Data/TestData/'
Store.dynamic_data_path = os.path.dirname(os.path.abspath(__file__)).replace("/Tests", "") + '/Data/DynamicData/'
python3 -m pip install --user --upgrade setuptools wheel
python3 setup.py sdist bdist_wheel
python3 -m twine upload -u <username> -p <password> --repository-url https://upload.pypi.org/legacy/ dist/* --verbose
Pastikan Anda telah menghapus file lama dari direktori dist Anda.
Laporan bug dan permintaan tarik dipersilakan di GitHub di https://github.com/nareshnavinash/selpy/. Proyek ini dimaksudkan untuk menjadi ruang yang aman dan ramah untuk kolaborasi, dan kontributor diharapkan mematuhi Kode Perilaku Perjanjian Kontributor.
Permata tersedia sebagai open source di bawah ketentuan lisensi GPL-3.0.
Semua orang yang berinteraksi dalam basis kode proyek Teber, pelacak masalah, ruang obrolan, dan milis diharapkan mengikuti kode etik.