Skip to main content

使用yaml实现selenium的po

Project description

Selenium的PO模型封装

使用Yaml文件进行元素信息的管理

安装

Github地址:https://github.com/zx490336534/selenium-po

$ 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新闻」
点击「新闻_查询按钮」

截图

测试截图

测试截图2

公众号:「测试游记」

公众号

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)

Uploaded Source

Built Distribution

selenium_po-0.0.7-py3.8.egg (15.9 kB view details)

Uploaded Source

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

Hashes for selenium-po-0.0.7.tar.gz
Algorithm Hash digest
SHA256 fb3304ee2bc24e8007bd22e316e6a903bbb48e17cde8fcb7740290b341f85a98
MD5 68a896108c4f030dbfbd001e113b10e6
BLAKE2b-256 1bcbb33e7a80c5347a9dcc7b35e5c31071ac2eff37abf33d602bbd2485fda197

See more details on using hashes here.

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

Hashes for selenium_po-0.0.7-py3.8.egg
Algorithm Hash digest
SHA256 2951f81928eb1daf4d8d9a91129b074b26371add866496cb964b3780e9d65c3b
MD5 63630dcc083e147fca9587519fbc9645
BLAKE2b-256 d30846afa08785e7714a755e7d06af4ecafe0016d1ead916f03d48ab855b94cb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page