老师,我的demo_test.py运行很奇怪,不知道为什么会这样,麻烦帮忙看下。

来源:4-2 原生测试框架参数化的第一种方法

精慕门1518355

2022-01-12

#-----------------------------------------po_demo.py--------------------------------------------

import sys

sys.path.append('D:\\SELENIUMPYTHON\\autoframework')

sys.path.append('D:\\SELENIUMPYTHON\\autoframework\\chapter3')

# 页面属性封装(url,浏览器实例,元素,操作)

# 页面调用(页面继承, 页面实例化)

# 基于页面调用可以有两种实现方式##

from bo_demo import *

# from setting import *


class Page:


    url = None

    driver = None


    @classmethod

    def cls_element(cls, loc: tuple):

        return cls.driver.find_element(*loc)


    def element(self, loc: tuple):

        """

        定位元素的方法

        :param loc:

        :return:

        """

        return self.driver.find_element(*loc)


    def elements(self, loc: tuple):

        """

        定位一组元素或多个元素

        :param loc:

        :return:

        """

        return self.driver.find_elements(*loc)



class CommonLoginPage(Page):

    url='http://127.0.0.1:88/zentao/user-login.html'

    # url = PROJECT_ZenTao_URL

    driver = CHROME().browser

    username = ('id', 'account')

    password = ('name', 'password')

    loginBtn = ('id', 'submit')


    def get(self):

        """

        打开首页地址

        :return:

        """

        self.driver.get(self.url)


    @classmethod

    def cls_get(cls):

        """

        类方法,打开首页

        :return:

        """

        cls.driver.get(cls.url)


    def login(self, username: str = 'admin', password: str = 'admin123456'):

        self.element(self.username).send_keys(username)

        self.element(self.password).send_keys(password)

        self.element(self.loginBtn).click()


    @classmethod

    def cls_login(cls, username: str = 'admin', password: str = 'admin123456'):

        cls.cls_element(cls.username).send_keys(username)

        cls.cls_element(cls.password).send_keys(password)

        cls.cls_element(cls.loginBtn).click()


class Search(CommonLoginPage):


    searchInput = ('id', 'searchInput')

    searchGo = ('id', 'searchGo')

    user_name = ('xpath', '//span[@class="user-name"]')

    bug_label = ('xpath', '//span[@class="label label-id"]')

    log_out = ('xpath', '//a[text()="退出"]')


    def search_bug(self, bug_id: str = '1'):

        self.element(self.searchInput).send_keys(bug_id)

        self.element(self.searchGo).click()


    def logout(self):

        self.element(self.user_name).click()

        self.element(self.log_out).click()


'''测试'''

class TestSearch(Search):

    """

    测试登录和检索bug功能

    """

    def test_login(self):

        self.get()

        self.login()

        assert self.element(self.user_name).text == 'admin'

        print('test_login is ok')


    def test_search(self):

        self.search_bug()

        assert self.element(self.bug_label).text == '1'

        print('test_search is ok')

        self.driver.quit()



# obj = TestSearch()

# obj.test_login()

# obj.test_search()











#-----------------------------------------------demo_test.py--------------------------------------------

import sys

sys.path.append('D:\\SELENIUMPYTHON\\autoframework')


import unittest

from time import sleep

import paramunittest

from chapter3.po_demo import Search

class TestSearch(unittest.TestCase,Search):

   

    def test_login_admin(self):

        self.get()

        self.login('admin', 'admin123456')

        sleep(1)

        assert self.element(self.user_name).text == 'admin'

        print('test_login_admin is ok')

        self.logout()

        sleep(1)

   

    def test_login_json(self):

        self.get()

        self.login('json', 'json123456')

        sleep(1)

        assert self.element(self.user_name).text == 'json'

        print('test_login_json is ok')

        self.logout()

        sleep(1)

   

    def test_login_tom(self):

        self.get()

        self.login('tom', 'tom123456')

        sleep(1)

        assert self.element(self.user_name).text == 'tom'

        print('test_login_tom is ok')

        self.driver.quit()



if __name__ =='main':

    unittest.main()




#-----------------------------------demo_test.py运行:打开禅道登录页面,但是没输入账户密码就关闭了;

关闭后再次打开浏览器,但是浏览器url跳转报错是提示data:,

http://img.mukewang.com/szimg/61de9ac90994d0cc19140906.jpg

http://img.mukewang.com/szimg/61de9aca09facba619200986.jpg


demo_test.py运行的终端是这样的:

http://img.mukewang.com/szimg/61de9e3409b3a57e19110993.jpg





写回答

1回答

托尼老师

2022-01-13

驱动版本和浏览器版本是不是匹配的?

0
1
精慕门1518355
老师,是我代码写错了,if __name__ =='main':我改正之后可以了。
2022-01-13
共1条回复

Python自动化测试开发实战,能帮你就业的测试课

开发高扩展、高可用的自动化测试框架,利用好测试自动化技术。

445 学习 · 157 问题

查看课程