python3+selenium框架设计08-进一步实现POM

Posted 梦忆安凉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3+selenium框架设计08-进一步实现POM相关的知识,希望对你有一定的参考价值。

之前都是只有一个页面,一个用例。这次两个页面。两个测试用例。其实界面自动化测试最大的难点在于driver的传递,需要保持唯一性。另外就是断言的难点。

在pageobject文件夹下新增baidu_new_page.py文件,代码如下。

from framework.Base_Page import BasePage
class NewPage(BasePage):
    ww = [id,ww]
    wr = [id,s_btn_wr]

    def type_ww(self):
        self.type(self.ww,selenium)

    def click_wr(self):
        self.click(self.wr)

在testsuites文件夹下新增test_baidu_new.py文件。代码如下

import unittest
from framework.Base_Page import BasePage
from pageobject.baidu_new_page import NewPage
from pageobject.BaiduPage import BaiduPage
class test_baidu_new(unittest.TestCase):
    ‘‘‘百度新闻‘‘‘

    def setUp(self):
        bro = BasePage(self)
        self.driver = bro.open_browser(self)

    def test_new(self):
        ‘‘‘搜索selenium‘‘‘
        baidu = BaiduPage(self.driver)
        baidu.click_new()
        new = NewPage(self.driver)
        new.type_ww()
        new.click_wr()
        new.quit()

在创建页面实例的时候,一定要把self.driver传进去。

entrance.py文件代码如下

import testsuites.test_baidu
import testsuites.test_baidu_new
import unittest

if __name__ == "__main__":
    suite = unittest.TestSuite()
    suite.addTest(testsuites.test_baidu.test_baidu(test_baisu))
    suite.addTest(testsuites.test_baidu_new.test_baidu_new(test_new))
    runner = unittest.TextTestRunner()
    runner.run(suite)

技术分享图片技术分享图片?

我这边执行成功,在百度搜索完了之后关了浏览器,然后开始执行新闻搜索的用例。

这些测试用例还不是最完善的,因为一般都需要断言判断执行结果,并日志输出断言结果及换行,让日志输出的给方便阅读,现在日志都是连在一起的。

以上是关于python3+selenium框架设计08-进一步实现POM的主要内容,如果未能解决你的问题,请参考以下文章

Python3+Selenium2完整的自动化测试实现之旅:自动化测试框架Python面向对象以及POM设计模型简介

Selenium3与Python3实战 Web自动化测试框架

python3+Robot Framework+PyCharm自动化测试框架设计

Python+Selenium框架版- 进一步实现POM和可能遇到问题解决方法

selenium3+python3——数据驱动(DDT)

selenium3+python3——数据驱动(DDT)