使用yaml实现selenium的po
Project description
Selenium的PO模型封装
使用Yaml
文件进行元素信息的管理
安装
$ pip install selenium-po
使用方法
创建一份yaml
代码中使用的是name
后的内容,实际页面元素定位使用的value
中的内容,方便后续统一维护
pages:
- page:
pageName: index
desc: 首页
locators:
- {desc: "搜索栏",type: "id",value: "kw",timeout: 3, name: "index_input"}
- {desc: "查询按钮",type: "id",value: "su",timeout: 3, name: "index_search"}
- page:
pageName: news
desc: 新闻
locators:
- {desc: "搜索栏",type: "id",value: "ww",timeout: 3, name: "news_input"}
- {desc: "查询按钮",type: "id",value: "s_btn_wr",timeout: 3, name: "news_search"}
创建一个页面操作对象
import os
import time
from selenium_po.elementoperator import ElementOperator
path = os.path.dirname(os.path.abspath(__file__))
class BaiDuIndexAction(ElementOperator):
def __init__(self, path=f"{path}/pages.yaml", file_name='index', driver=None):
super(BaiDuIndexAction, self).__init__(path, file_name, driver)
self.url = 'http://www.baidu.com'
class BaiDuNewsAction(ElementOperator):
def __init__(self, path=f"{path}/pages.yaml", file_name='news', driver=None):
super(BaiDuNewsAction, self).__init__(path, file_name, driver)
self.url = 'http://news.baidu.com/'
测试
if __name__ == '__main__':
baidu = BaiDuIndexAction()
baidu.open(baidu.url, baidu.index_input)
baidu.input(baidu.index_input, "python")
baidu.click(baidu.index_search)
time.sleep(2)
baidu.screenshot_pic("1.png")
# baidu.close()
baidu_news = BaiDuNewsAction(driver=baidu.driver)
baidu_news.open(baidu_news.url, baidu_news.news_input)
baidu_news.input(baidu_news.news_input, "python新闻")
baidu_news.click(baidu_news.news_search)
time.sleep(2)
baidu_news.screenshot_pic("2.png")
baidu_news.close()
输出
往「首页_搜索栏」输入「python」
点击「首页_查询按钮」
往「新闻_搜索栏」输入「python新闻」
点击「新闻_查询按钮」
截图
公众号:「测试游记」
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
selenium-po-0.0.7.tar.gz
(8.3 kB
view details)
Built Distribution
selenium_po-0.0.7-py3.8.egg
(15.9 kB
view details)
File details
Details for the file selenium-po-0.0.7.tar.gz
.
File metadata
- Download URL: selenium-po-0.0.7.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb3304ee2bc24e8007bd22e316e6a903bbb48e17cde8fcb7740290b341f85a98 |
|
MD5 | 68a896108c4f030dbfbd001e113b10e6 |
|
BLAKE2b-256 | 1bcbb33e7a80c5347a9dcc7b35e5c31071ac2eff37abf33d602bbd2485fda197 |
File details
Details for the file selenium_po-0.0.7-py3.8.egg
.
File metadata
- Download URL: selenium_po-0.0.7-py3.8.egg
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/49.6.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2951f81928eb1daf4d8d9a91129b074b26371add866496cb964b3780e9d65c3b |
|
MD5 | 63630dcc083e147fca9587519fbc9645 |
|
BLAKE2b-256 | d30846afa08785e7714a755e7d06af4ecafe0016d1ead916f03d48ab855b94cb |