Selpy 모듈은 Page Object 모델에서 기능적 UI 자동화에 사용될 모든 일반적인 방법을 갖추어야합니다. Selpy는 또한 필요한 경우 UI에서 파일로 데이터를 저장하는 스냅 샷 기능을 갖도록 구동되었습니다. 이로 인해 테스트 데이터 유지 보수 노력이 줄어 듭니다.

응용 프로그램의 요구 사항 에이 줄을 추가하십시오 .txt 파일 :
selpy==<version>
그런 다음 실행 :
pip3 install -r requirements.txt
또는 직접 설치하십시오.
pip3 install selpy
이 모듈은 Selpy-Python 프레임 워크의 라이브러리 방법을 대체하도록 만들어졌습니다. 이를 통해 우리는 여러 팀간에 방법을 공유하고 반복적 인 작업을 완전히 무시할 수 있습니다. 기능 UI 자동화의 페이지 객체 모델에 대한 자세한 내용은 SELPU Python 문서 페이지를 확인하십시오.
내부 /selpy/ path 내부에 모든 새로운 방법을 추가하고 동일한 경로에서 __init__.py 파일 내부의 클래스 가져 오기를 추가하여 새로 추가 된 클래스를이 모듈을 사용하여 가져올 수 있도록합니다.
이 모듈 사용을 가져 오려면
import selpy
이 모듈 사용에서 특정 클래스를 가져 오려면
from selpy.driver import Driver
드라이버 파일은 드라이버가 실행 한 모든 일반적인 작업을 보유합니다. 운전자를 시작하고
driver = Driver()
driver 셀레늄 웹 드라이버 객체를 고정합니다.
드라이버 기능을 구성하려면 Selpy-Python의 Global_data.yml에 세부 사항을 지정해야합니다.
이 클래스는 Page Object 모델에서 Selenium Locators를 선언하는 것입니다. 로케이터를 다음과 같이 선언 할 수 있습니다.
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'
이 클래스는이 모듈의 실행 시간 구성을 저장하는 것입니다. 우리의 프레임 워크를위한 일종의 멤버 또는 레디스. 다른 모듈에 필요한 중앙 집중식 실행 시간 데이터는 여기에 저장되고 다른 모듈에서 검색됩니다.
실제 SNAP 기능 논리가있는 곳입니다. UI 데이터를 동적 파일에 저장하려면 테스트를 실행해야합니다.
snap=1 pytest
그러나 이렇게하면 데이터가 동적 파일에 저장되도록 보장하지 않습니다. SNAP 기능이 지원되는 방식으로 자동화 코드를 스크립트해야합니다. 예를 들어 Tests/amazon.py 내부의 Selpy-Python 프레임 워크를 살펴볼 수 있습니다.
정상 모드에서 테스트를 실행하면 동적 데이터가 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 디렉토리에서 이전 파일을 삭제했는지 확인하십시오.
https://github.com/nareshnavinash/selpy/에서 버그 보고서 및 풀 요청은 환영합니다. 이 프로젝트는 협력을위한 안전하고 환영하는 공간이되기위한 것이며, 기고자들은 기고자 계약 규범을 준수 할 것으로 예상됩니다.
보석은 GPL-3.0 라이센스의 조건에 따라 오픈 소스로 제공됩니다.
Teber Project의 코드베이스, 문제 추적기, 대화방 및 메일 링리스트에서 상호 작용하는 모든 사람은 행동 강령을 따라야합니다.