โมดูล SELPY คือการมีวิธีการทั่วไปทั้งหมดที่จะใช้ในการทำงานอัตโนมัติ UI ที่ใช้งานได้ในโมเดลวัตถุหน้า Selpy ยังขับเคลื่อนคุณลักษณะสแน็ปช็อตที่จะบันทึกข้อมูลจาก UI ไปยังไฟล์หากจำเป็น สิ่งนี้จะช่วยลดความพยายามในการบำรุงรักษาข้อมูลการทดสอบ

เพิ่มบรรทัดนี้ในไฟล์ข้อกำหนดของแอปพลิเคชันของคุณ:
selpy==<version>
แล้วดำเนินการ:
pip3 install -r requirements.txt
หรือติดตั้งด้วยตัวเองเป็น:
pip3 install selpy
โมดูลนี้ถูกสร้างขึ้นเพื่อแทนที่วิธีไลบรารีใน Selpy-Python Framework สิ่งนี้ช่วยให้เราสามารถแบ่งปันวิธีการระหว่างทีมที่แตกต่างกันและเพิกเฉยต่องานซ้ำ ๆ สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับโมเดลวัตถุหน้าสำหรับการทำงานอัตโนมัติ UI ตรวจสอบหน้าเอกสารเอกสาร 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 ที่เกิดขึ้นจริง เพื่อที่จะบันทึกข้อมูล UI ในไฟล์ไดนามิกหนึ่งต้องเรียกใช้การทดสอบด้วย
snap=1 pytest
แต่มีเพียงสิ่งนี้เท่านั้นที่จะไม่มั่นใจว่าข้อมูลจะถูกบันทึกลงในไฟล์แบบไดนามิก หนึ่งต้องสคริปต์รหัสอัตโนมัติของพวกเขาในลักษณะที่รองรับคุณสมบัติ SNAP ตัวอย่างเช่นหนึ่งสามารถดูที่ selpy-python framework ภายใน Tests/amazon.py
เมื่อเรียกใช้การทดสอบในโหมดปกติ pytest ข้อมูลแบบไดนามิกจะไม่ถูกแทนที่ แต่จะยืนยันข้อมูลที่มีอยู่ใน UI ด้วยไฟล์ข้อมูลแบบไดนามิก
เพื่อให้คุณสมบัตินี้ทำงานได้อย่างราบรื่นและเพื่อเข้าถึงตัวแปรอย่างราบรื่นเราต้องกำหนดค่าพารามิเตอร์ต่อไปนี้ในกรอบของพวกเขาในวิธี 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 ของคุณ
รายงานข้อผิดพลาดและคำขอดึงยินดีต้อนรับบน GitHub ที่ https://github.com/nareshnavinash/selpy/ โครงการนี้มีจุดประสงค์เพื่อเป็นพื้นที่ที่ปลอดภัยและเป็นมิตรสำหรับการทำงานร่วมกันและผู้สนับสนุนคาดว่าจะปฏิบัติตามจรรยาบรรณของผู้สนับสนุน
อัญมณีมีให้เป็นโอเพ่นซอร์สภายใต้ข้อกำหนดของใบอนุญาต GPL-3.0
ทุกคนมีปฏิสัมพันธ์ในรหัสฐานของโครงการ Teber, ตัวติดตามปัญหา, ห้องแชทและรายชื่อผู้รับจดหมายคาดว่าจะปฏิบัติตามจรรยาบรรณ