• 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()
  • 相关阅读:
    修改Windows和linux系统时间
    个人随笔、收藏——(包括技术、设计思想等)
    给vue项目添加ESLint
    React文档(七)处理事件
    React文档(六)state和生命周期
    React文档(五)组件和props
    React文档(四)渲染元素
    React文档(三)介绍JSX
    React文档(二)Hello World
    React文档(一)安装
  • 原文地址:https://www.cnblogs.com/laosun0204/p/9268183.html
Copyright © 2020-2023  润新知