自动化测试登录 python+selenium

Page Object

Page Object是Selenium自动化测试项目开发实践的最佳设计模式之一,通过对界面元素和功能模块的封装减少冗余代码,同时在后期维护中,若元素定位或功能模块发生变化,只需要调整页面元素或功能模块封装的代码,提高测试用例的可维护性。

BasePage.py

from  time import sleep

class Page():
    '''页面基础类'''

    #初始化
    def __init__(self, dirver):
        self.base_url = 'http://www.uerb.net/login.php'
        self.driver = dirver
        # self.timeout = 10

    #打开不同的子页面
    def _open(self):
        url_ = self.base_url
        print(self.driver)
        # self.driver.maximize_window()
        self.driver.get(self.base_url)
        # sleep(2)
        # print(self.driver.current_url)
        assert self.driver.current_url == url_, 'Did ont land on %s' % url_

    def open(self):
        self._open()

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

LoginPage.py

from BasePage import *
from  time import sleep
from selenium.webdriver.common.by import By

class LoginPage(Page):
    '''首页登录页面'''

    #定位器
    username_loc=(By.NAME,'username3')
    password_loc=(By.NAME,'password3')
    login_loc  =(By.LINK_TEXT,'用户登录')
    submit_loc =(By.CLASS_NAME,'login-style-update')
    search_loc  =(By.CLASS_NAME,'s_btn')
    keyword_loc =(By.NAME,'wd')

    # 点击登录
    def type_login(self):
        self.find_element(*self.login_loc).click()

    # 查询
    def type_keyword(self,keyword):
        self.find_element(*self.keyword_loc).clear()
        self.find_element(*self.keyword_loc).send_keys(keyword)

    # 点击登录
    def type_search(self):
        self.find_element(*self.search_loc).click()

    #用户名输入框元素
    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, keyword):
    '''测试用户名密码是否可以登录'''
    login_page = LoginPage(driver)
    login_page.open()

    # login_page.type_keyword(keyword)
    # login_page.type_search()
    login_page.type_login()
    # login_page.type_zmlogin()
    sleep(4)
    login_page.type_username(username)
    login_page.type_password(password)
    sleep(4)
    login_page.type_submit()
    sleep(10)

loin_test.py

from LoginPage import *
from selenium import webdriver

driver=webdriver.Chrome()

username = '*******'
password = '1'
keyword  = '我'
test_user_login(driver, username, password, keyword)

driver.quit()

猜你喜欢

转载自blog.csdn.net/he3236220/article/details/79207157
今日推荐