PageObject设计模式

对界面元素和功能模块进行封装,减少代码冗余。

登录案例

新建BasePage.py文件

from time import sleep

class Page():
#初始化
def __init__(self,driver):
self.base_url='http://localhost'
self.driver=driver
self.timeout=10
#打开不同的页面
def _open(self,url):#加下划线表示私有方法,不能直接调用
url_=self.base_url + url
print('Test page is :{}'.format(url_))
self.driver.get(url_)
sleep(2)
assert self.driver.current_url==url_,'did not land on %s'%url_
#调用_open方法
def open(self):
self._open(self.url)
#元素定位方法封装
def find_element(self,*loc):
return self.driver.find_element(*loc)

新建一个LoginPage.py文件
from BasePage import *
from selenium.webdriver.common.by import By
class LoginPage(Page):
url="/"
#定位器
username_loc=(By.NAME,'username')
password_loc=(By.NAME,'password')
submit_loc=(By.NAME,'Submit')
#用户名输入框
def type_username(self,username):
self.find_element(*self.username_loc).clear()
self.find_element(*self.username_loc).send_keys(username)
#密码输入框
def type_password(self,password):
self.find_element(*self.password_loc).clear()
self.find_element(*self.password_loc).send_keys(password)
#登录按钮
def type_submit(self):
self.find_element(*self.submit_loc).click()

#登录模块封装
def test_user_login(driver,username,password):
"""测试用户名密码是否可以登录"""
loginPage=LoginPage(driver)
loginPage.open()
loginPage.type_username(username)
loginPage.type_password(password)
loginPage.type_submit()

新建Login.py文件
from selenium import webdriver
from LoginPage import *
driver=webdriver.Chrome()

username="****"
password="****"
test_user_login(driver,username,password)#调用LoginPage文件中的方法
sleep(3)
driver.quit()
原文地址:https://www.cnblogs.com/Luafair/p/10025293.html