Python Selenium PageOjbect實現登錄

跟大家分享Python使用PageObject實現登錄,話不多說,直接上代碼:

1.BasePage:

#coding:utf-8
# @Time   : 2019/5/19 21:16
# @Author : Jake Yu
# @File   : BasePage

from time import  sleep

class BasePage(object):
    #初始化
    def __init__(self, driver):
        self.driver = driver
        self.driver.maximize_window()
        self.base_url = '替換成自己的測試URL地址'
        self.timeout = 10

    #打開不通的子頁面
    def _open(self,url):
        url_ = self.base_url + url
        print("The url is %s" % url_)
        self.driver.get(url_)
        sleep(2)
       # assert self.driver.current_url == url_, 'Did not load on %s' % url_

    def open(self):
        self._open(self.url)

    # 元素定位方法封裝
    def find_element(self, *loc):
        return self.driver.find_element(*loc)

2.LoginPage

# -*- coding: gbk -*-
# Name:         LoginPage
# Description:  
# Author:       admin
# Date:         2019/8/15


from page.BasePage import *
from selenium.webdriver.common.by import By

class LoginPage(BasePage):
    url = '/'

    # 定位器
    username_loc = (By.ID, 'loginname')
    password_loc = (By.ID, 'password')
    submit_loc = (By.ID, 'to-recover')

    # 用戶名輸入框元素
    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()
        sleep(10)

    # 登錄功能模塊封裝
    #def test_user_login(driver, searchValue, password):
    #    '''測試用戶名密碼是否可用'''
    #    login_page = LoginPage(driver)
    #    login_page.open()

    #    login_page.type_username(searchValue)
    #    login_page.type_password(password)
    #    login_page.type_submit()

    #登錄操作
    def user_login(driver, searchValue, password):
        login_page = LoginPage(driver)
        login_page.open()
        login_page.type_username(searchValue)
        login_page.type_password(password)
        login_page.type_submit()

3.test_login測試用例

# -*- coding: gbk -*-
# Name:         test_login
# Description:  
# Author:       admin
# Date:         2019/8/15

from page.LoginPage import *
from selenium import webdriver
import unittest
from page.MainPage import  *

class Login02(unittest.TestCase):
    def testlogin(self):
       # driver = webdriver.Firefox()
        driver = webdriver.Chrome()
        searchValue = 'admin'
        password = 'admin1'

        LoginPage.user_login(driver, searchValue,password)
        sleep(3)
       # driver.quit()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章