自动化测试教程(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设计模式没有说完,未完待续。

相关文章
|
1天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十九)-java+ selenium自动化测试-隐藏元素定位与操作(详解教程)
【5月更文挑战第13天】本文主要讨论了在Selenium自动化测试中如何处理前端隐藏元素的问题。隐藏元素通常是通过`type="hidden"`或`style="display: none;"`属性实现的,它们在页面上不可见,但仍然存在于HTML代码中。Selenium可以定位到这些隐藏元素,但无法直接进行点击、输入等操作,会报错“ElementNotInteractableException”。
18 3
|
2天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
【5月更文挑战第12天】本文介绍了WebDriver中用于判断元素状态的三个方法:`isEnabled()`、`isSelected()`和`isDisplayed()`。`isSelected()`检查元素是否被选中,通常用于勾选框。`isDisplayed()`则用来判断元素是否在页面上可见。`isEnabled()`方法确定元素是否可操作,例如是否能点击或输入内容。
11 1
|
3天前
|
存储 JavaScript Java
《手把手教你》系列技巧篇(四十七)-java+ selenium自动化测试-判断元素是否显示(详解教程)
【5月更文挑战第11天】WebDriver 的 `isDisplayed()` 方法用于检查页面元素是否可见,如果元素存在于DOM中且可视,返回`true`,否则返回`false`。在自动化测试中,这个方法常用于验证元素是否真正显示在页面上。示例代码展示了如何使用 `isDisplayed()` 判断百度登录页面的特定错误提示文字是否出现。
14 1
|
4天前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
14 2
|
5天前
|
Web App开发 JavaScript 测试技术
《手把手教你》系列技巧篇(四十五)-java+ selenium自动化测试-web页面定位toast-上篇(详解教程)
【5月更文挑战第9天】本文介绍了在Appium中处理App自动化测试中遇到的Toast元素定位的方法。Toast在Web UI测试中也常见,通常作为轻量级反馈短暂显示。文章提供了两种定位Toast元素的技巧.
11 0
|
6天前
|
监控 安全 网络协议
社会工程渗透测试教程(一)(4)
社会工程渗透测试教程(一)
10 1
|
6天前
|
存储 安全 物联网
社会工程渗透测试教程(一)(3)
社会工程渗透测试教程(一)
8 0
|
6天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
6天前
|
数据采集 机器学习/深度学习 算法框架/工具
利用Python实现基于图像识别的自动化数据采集系统
本文介绍了如何利用Python编程语言结合图像识别技术,构建一个自动化的数据采集系统。通过分析图像内容,实现对特定信息的提取和识别,并将其转化为结构化数据,从而实现高效、准确地采集需要的信息。本文将详细讨论系统的设计思路、技术实现以及应用场景。
|
3天前
|
数据采集 Java 开发工具
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境
一文2500字从0到1教你搭建Android自动化python+appium环境