• Page Object 1 百度搜索实例 (虫师《selenium3自动化测试实战--基于Python语言笔记40》)


    1.创建Page的基类(base.py)

    import time
    
    
    class BasePage:
        """
        基础Page层,封装一些常用方法
        """
        def __init__(self, driver):
            self.driver = driver
    
        # 打开页面
        def open(self, url=None):
            if url is None:
                self.driver.get(self.url)
            else:
                self.driver.get(url)
    
        # id定位
        def by_id(self, id_):
            return self.driver.find_element_by_id(id_)
    
        # name定位
        def by_name(self, name):
            return self.driver.find_element_by_name(name)
    
        # class定位
        def by_class(self, class_name):
            return self.driver.find_element_by_class_name(class_name)
    
        # XPath定位
        def by_xpath(self, xpath):
            return self.driver.find_element_by_xpath(xpath)
    
        # CSS定位
        def by_css(self, css):
            return self.driver.find_element_by_css_selector(css)
    
        # 获取title
        def get_title(self):
            return self.driver.title
    
        # 获取页面text,仅使用XPath定位
        def get_text(self, xpath):
            return self.by_xpath(xpath).text
    
        # 执行JavaScript脚本
        def js(self, script):
            self.driver.execute_script(script)

    2.百度搜索方法封装在一起(baidu_page.py)

    from Page_Object.base import BasePage
    
    
    class BaiduPage(BasePage):
        """百度Page层,百度页面封装操作到的元素"""
        url = "https://www.baidu.com"
    
        def search_input(self, search_key):
            self.driver.find_element_by_id("kw").send_keys(search_key)
    
        def search_button(self):
            self.driver.find_element_by_id("su").click()

    3.百度搜索测试用例封装在一起(test_baidu.py)

    import unittest
    from time import sleep
    from selenium import webdriver
    from Page_Object.baidu_page import BaiduPage
    
    
    class TestBaidu(unittest.TestCase):
    
        @classmethod
        def setUpClass(cls):
            cls.driver = webdriver.Chrome()
    
        def test_baidu_search_case1(self):
            page = BaiduPage(self.driver)
            page.open()
            page.search_input("selenium")
            page.search_button()
            sleep(2)
            self.assertEqual(page.get_title(), "selenium_百度搜索")
    
        def test_baidu_search_case2(self):
            page = BaiduPage(self.driver)
            page.open()
            page.search_input("unittest")
            page.search_button()
            sleep(2)
            self.assertEqual(page.get_title(), "unittest_百度搜索")
    
        def test_baidu_search_case3(self):
            page = BaiduPage(self.driver)
            page.open()
            page.search_input("page object")
            page.search_button()
            sleep(2)
            self.assertEqual(page.get_title(), "page object_百度搜索")
    
        @classmethod
        def tearDownClass(cls):
            cls.driver.quit()
    
    if __name__ == '__main':
        unittest.main(verbosity=2)

    测试结果如下:

  • 相关阅读:
    winform 单选框, 图像控件,图像列表,状态栏,定时器,绘图
    学习资料链接,csdn博客
    c# 基本控件,窗口程序
    Gmap.net 怎么导入离线地图
    修改MFC主窗口界面标题和图标的方法
    vc6.0缓冲区
    vc6.0编译出错,删除多余的文件,清空重新编译
    Tomcat插件与Jetty插件在MyEclipse中的配置
    div里面的内容超出自身高度时,显示省略号
    aptana studio 3 自动换行(无需插件)
  • 原文地址:https://www.cnblogs.com/kite123/p/11572813.html
Copyright © 2020-2023  润新知