Selpy模块应具有所有常用方法,这些方法将在页面对象模型中使用在功能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将持有Selenium Webdriver对象。
为了配置驱动程序功能,必须在selpy-python中的global_data.yml中指定详细信息。
此类是在页面对象模型中声明硒定位器。您可以按照以下方式声明定位者
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/上的GitHub上的错误报告和拉动请求。该项目旨在是一个安全,热情的协作空间,预计贡献者将遵守撰稿人契约的行为准则。
根据GPL-3.0许可证的条款,该宝石可作为开源。
在Teber项目的代码库,问题跟踪器,聊天室和邮件列表中进行互动的每个人都将遵循《行为守则》。