وحدة SELPY هي أن يكون لها جميع الطرق الشائعة التي سيتم استخدامها في أتمتة واجهة المستخدم الوظيفية في نموذج كائن الصفحة. تم تشغيل SELPY أيضًا للحصول على ميزة لقطة من شأنها حفظ البيانات من واجهة المستخدم إلى ملف إذا لزم الأمر. وهذا بدوره يقلل من جهود صيانة بيانات الاختبار.

أضف هذا السطر إلى ملف متطلبات التطبيق الخاص بك.
selpy==<version>
ثم تنفذ:
pip3 install -r requirements.txt
أو تثبيته بنفسك على النحو التالي:
pip3 install selpy
تم تصميم هذه الوحدة لاستبدال أساليب المكتبة في إطار عمل Selpy-Python. هذا يتيح لنا مشاركة الأساليب بين الفرق المختلفة وتجاهل العمل المتكرر تمامًا. لمزيد من التفاصيل على نموذج كائن الصفحة لأتمتة واجهة المستخدم الوظيفية تحقق من صفحة توثيق Selpu Python.
أضف جميع الطرق الجديدة داخل /selpy/ PATH وأضف استيراد الفئة داخل ملف __init__.py في نفس المسار بحيث يمكن استيراد الفئة المضافة حديثًا باستخدام هذه الوحدة.
لاستيراد استخدام هذه الوحدة ،
import selpy
لاستيراد فئة معينة في استخدام هذه الوحدة ،
from selpy.driver import Driver
يحتوي ملف برنامج التشغيل على جميع الإجراءات الشائعة التي يتم تنفيذها بواسطة برنامج التشغيل. بدء السائق بواسطة ،
driver = Driver()
سيحمل driver كائن Selenium WebDriver.
لتكوين إمكانيات برنامج التشغيل ، يتعين على المرء تحديد التفاصيل في Global_Data.yml في Selpy-Python.
هذه الفئة هي إعلان محددات السيلينيوم في نموذج كائن الصفحة. يمكنك إعلان المواقع على النحو التالي ،
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)
لاستخدام طريقة المحدد ، نحتاج إلى تمرير نوع المحدد وعنصر المحدد الفعلي. يجب ذكر نوع المحدد بالطريقة التالية للسماح selpy بمعالجة المحدد.
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'
هذه الفئة هي تخزين تكوينات وقت التشغيل لهذه الوحدة. نوع من memcached أو redis لإطارنا. يتم تخزين بيانات وقت التشغيل المركزية التي تحتاجها الوحدات الأخرى هنا وتحريكها بواسطة وحدات أخرى.
هذا هو المكان الذي يوجد فيه منطق ميزة SNAP الفعلي. من أجل حفظ بيانات واجهة المستخدم في الملف الديناميكي ، يتعين على المرء إجراء الاختبارات معه ،
snap=1 pytest
ولكن ، هذا فقط لن يضمن حفظ البيانات في ملف ديناميكي. يتعين على المرء أن يدعو رمز الأتمتة الخاص بهم بطريقة تدعمها ميزة SNAP. على سبيل المثال ، يمكن للمرء أن ينظر إلى إطار عمل Selpy-Python داخل Tests/amazon.py
عند إجراء الاختبارات في الوضع العادي pytest لن يتم تجاوز البيانات الديناميكية بدلاً من ذلك ، فسيؤكد أن البيانات الموجودة في واجهة المستخدم مع ملف البيانات الديناميكي.
للحصول على هذه الميزة تعمل بسلاسة والوصول إلى المتغيرات بطريقة أكثر سلاسة ، يتعين على المرء تكوين المعلمات التالية في إطار عملها في طريقة pytest_configure (بحيث يتم تعيين متغيرات المسار هذه على بدء اختبار 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
تأكد من حذف الملفات القديمة من Dist Directory.
يتم الترحيب بتقارير الأخطاء وطلبات السحب على Github على https://github.com/nareshnavinash/selpy/. يهدف هذا المشروع إلى أن يكون مساحة آمنة ومرحبة للتعاون ، ومن المتوقع أن يلتزم المساهمون بقواعد سلوك العهد المساهم.
الجوهرة متاحة كمصدر مفتوح بموجب شروط ترخيص GPL-3.0.
من المتوقع أن يتبع كل من يتفاعل في قواعد الكود الخاصة بمشروع Teber ، ومتتبعات المشكلات ، وغرف الدردشة والقوائم البريدية مدونة قواعد السلوك.