UI自动化web端框架page.py代码

from lib.core.pyse import Pyse


class BasePage(object): # page object思想,每个功能封装成一个类
def __init__(self):
"""初始化时实例化Pyse,生成driver"""
self.driver = Pyse()

def get(self):
"""打开网站,并使窗口全屏展示"""
self.driver.open('http://zbox.imdsx.cn/user-login.html')
self.driver.max_window()


class LoginPage(BasePage):
"""输入用户名"""
def username(self):
self.driver.type('css=>#account', 'admin')

def password(self):
"""输入密码"""
self.driver.type('css=>[name="password"]', 'houyafan123')

def submit(self):
"""点击登录按钮"""
self.driver.click('css=>#submit')

def check_login(self, name): # check_login会返回一个true of false,把self.test_a_zbox_login.__name__传给name
"""登录成功后校验是否有退出字样"""
return self.driver.wait_and_save_exception('css=>[href="/user-logout.html"]', name)


class MenuPage(LoginPage):
"""点击bug模块,跳转到下一个页面"""
def bug_tag(self):
self.driver.click('css=>[href="/bug/"]')


class CreateBugPage(MenuPage):
"""点击+提bug链接,跳转到提bug页面"""
def create_bug(self):
self.driver.click('css=>[href^="/bug-create"]')

def module(self):
"""所属模块div需要两次点击操作,相同属性使用层级关系定位,第一次直接点击文本框,会弹出选择菜单,第二次会点击选择一个菜单"""
self.driver.click('css=>#module_chosen')
self.driver.click('css=>#module_chosen>div>ul>li[data-option-array-index="1"]')

def system(self):
"""操作系统下拉框操作"""
self.driver.select_by_value('css=>#os', 'win8')

def browser(self):
"""浏览器下拉框操作"""
self.driver.select_by_value('css=>#browser', 'firefox')

def build(self):
"""影响版本和所属模块定位方式一样"""
self.driver.click('css=>#openedBuild_chosen')
self.driver.click('css=>#openedBuild_chosen>div>ul>li[data-option-array-index="1"]')

def assign(self):
"""指派人和所属模块定位方式一样"""
self.driver.click('css=>#assignedTo_chosen')
self.driver.click('css=>#assignedTo_chosen>div>ul>li[data-option-array-index="1"]')

def end_date(self):
"""输入截止日期"""
self.driver.type('css=>#deadline', '2018-06-19')

def title(self):
"""输入bug标题"""
self.driver.type('css=>#title', 'UI自动化测试的case')

def repeat_step(self):
"""重现步骤,通过js实现"""
self.driver.js("document.getElementById('steps').innerText='python很'")

def save(self):
"""点击保存按钮"""
self.driver.js('window.scrollTo(0,800)')
self.driver.click('css=>#submit')

def check_create_bug(self, name):
"""创建bug成功后校验是否有+提bug字样"""
return self.driver.wait_and_save_exception('css=>[href^="/bug-create"]', name)


class Page(CreateBugPage):
def quit(self):
self.driver.quit()


if __name__ == '__main__':
driver = Page()
driver.get()
driver.username()
driver.password()
driver.submit()
driver.bug_tag()
driver.create_bug()
driver.module()
driver.system()
driver.browser()
driver.build()
driver.assign()
driver.end_date()
driver.title()
driver.repeat_step()
driver.save()
posted @ 2018-07-05 14:37  laosun0204  阅读(196)  评论(0编辑  收藏  举报