1:PageObject三层架构分为:
接下来用163邮箱的登录功能来举例说明三层架构的使用。
1:先创建目录结构,如下图
2:在工具Util中,先封装查找元素定位的工具,创建一个find_ele.py文件。内容如下:
from selenium.webdriver.support.wait import WebDriverWait
def find_element(dirver, find_type, find_express):
'''查找元素控件'''
try:
element = WebDriverWait(dirver, 20).until(lambda driver:driver.find_element(find_type, find_express))
# 20秒内,每0.5秒去查找一次元素,直到找到为止,找到就返回,如果20秒还没找到,就抛异常
return element
except Exception as e:
raise e
3:接下来在pageobject三层架构中的第一层对象层,封装登录页面的元素定位及操作
在Object文件夹下创建一个loginpage.py文件,内容如下:
# 对象层
from selenium import webdriver
from Util.find_ele import find_element
from Util.read_ini import ParseConfigFile
class LoginPage:
def __init__(self, driver):
self.driver = driver
def input_username(self, username):
'''定位用户名输入控件,并输入用户名'''
find_element(self.driver, 'name', 'email').send_keys(username)
def input_password(self, password):
'''定位密码输入控件,并输入密码'''
find_element(self.driver, 'name', 'password').send_keys(password)
def switch_frame(self):
'''切换ifra