自动化测试教程(22)使用PO设计模式2

简介: 接着我们上一小结没学完的PO设计模式,我们继续学习一下PO设计模式,并熟练运用。PO设计模式没有说完,未完待续。

文章目录

1.任务目标

接着我们上一小结没学完的PO设计模式,我们继续学习一下PO设计模式,并熟练运用

2.任务实操

2.1任务目录

2.2任务代码

2.2.1 Webdriver包下面的test_case包下面的page_object下面的Base_Page代码

from time import sleep
class Page():
    def __init__(self, driver):
        self.driver = driver
        self.base_url = "http://test.pandabrother.cn/gpracticef/my/login.html"
        self.timeout = 10
    def _open(self, url):
        url_ = self.base_url + url
        print("Test page is %s" % url_)
        self.driver.maximize_window()
        self.driver.get(url_)
        sleep(3)
        assert self.driver.current_url == url_, "Did not lend on %s" % url_
    def open(self):
        self._open(self.url)
    def find_element(self, *loc):
        return self.driver.find_element(*loc)
    #这里主要封装点击方法,浏览器的ip地址

2.2.2 Webdriver包下面的test_case包下面的page_object下面的Login_page代码

from selenium.webdriver.common.by import By
from Webdriver.test_case.page_object.Base_page import *
class LoginPage(Page):
    url = ""
    username_loc = (By.CLASS_NAME, "form-control")
    psw_loc = (By.XPATH, '//*[@id="input-password"]')
    click_loc = (By.XPATH, '/html/body/div/div/div[1]/section/form/div[3]/button')
    def type_username(self, user):
        self.find_element(*self.username_loc).send_keys(user)
    def type_pws(self, pws):
        self.find_element(*self.psw_loc).send_keys(pws)
    def type_click(self):
        self.find_element(*self.click_loc).click()
def test_user_login(driver, user, psw):
    login_page = LoginPage(driver)
    login_page.open()
    login_page.type_username(user)
    login_page.type_pws(psw)
    login_page.type_click()
    #在这个里面封装的是登录方法

2.2.3Webdriver包下面的test_case包下面的page_object下面的Add_page代码

from selenium.webdriver.common.by import By
from Webdriver.test_case.page_object.Base_page import *
class UserAdd(Page):
    url = ''
    sycd_loc = (By.XPATH, '//*[@id="sidebar-menu"]/div/ul/li/a')
    jcgl_loc = (By.XPATH, '//*[@id="sidebar-menu"]/div/ul/li/ul/li[2]/a')
    xinzeng_loc = (By.XPATH, '/html/body/div[1]/div/div[3]/div/div[3]/div[2]/div/form/button[2]')
    input_loc = (By.XPATH, '//*[@id="input-name"]')
    baocun_loc = (By.XPATH, '//*[@id="btn-save"]')
    cf_loc = (By.XPATH, '//*[@id="out-tip"]')
    def type_sycd(self):
        self.find_element(*self.sycd_loc).click()
    def type_jcgl(self):
        self.find_element(*self.jcgl_loc).click()
    def type_xinzheng(self):
        self.find_element(*self.xinzeng_loc).click()
    def type_input(self, input_name):
        self.find_element(*self.input_loc).send_keys(input_name)
    def type_baocun(self):
        self.find_element(*self.baocun_loc).click()
    def type_cf(self):
        return self.find_element(*self.cf_loc).text
def test_user_add(driver, input_name):
    add_test = UserAdd(driver)
    add_test.type_sycd()
    add_test.type_jcgl()
    add_test.type_xinzheng()
    add_test.type_input(input_name)
    add_test.type_baocun()
    #在这里面封装的是登录进去后添加数据和断言的方法

3.小结

PO设计模式没有说完,未完待续。

相关文章
|
3月前
|
设计模式 Java API
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
|
3月前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
|
3月前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
|
2月前
|
设计模式 Java Kotlin
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
Kotlin教程笔记(56) - 改良设计模式 - 装饰者模式
46 2
|
2月前
|
设计模式 安全 Java
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
Kotlin教程笔记(57) - 改良设计模式 - 单例模式
37 2
|
3月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
3月前
|
设计模式 Java Kotlin
Kotlin教程笔记(54) - 改良设计模式 - 迭代器模式
Kotlin教程笔记(54) - 改良设计模式 - 迭代器模式
56 2
|
3月前
|
设计模式 Java API
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
Kotlin教程笔记(50) - 改良设计模式 - 工厂模式
50 2
|
3月前
|
设计模式 算法 Kotlin
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
Kotlin教程笔记(53) - 改良设计模式 - 策略模式
56 1
|
3月前
|
设计模式 监控 Java
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
Kotlin教程笔记(52) - 改良设计模式 - 观察者模式
51 1

热门文章

最新文章