1.安装
pip install pythium
1.基础层
用来存放driver以及初始化
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from .login_page import LoginPage
# pip install webdriver_manager
class BasePage(object):
def __init__(self):
# self.driver = webdriver.chrome(ChromeDriverManager().install())
self.driver = webdriver.Chrome()
self.driver.maximize_window()
def open_url(self, url: str) -> None:
self.driver.get(url)
def quit_browser(self) -> None:
self.driver.quit()
def get_loginpage(self) :
return LoginPage(self.driver)
3.对象层
用于存放界面元素定位和控件操作
import time
from pythium import find_by, Page
from selenium.webdriver.remote.webelement import WebElement
class LoginPage(Page):
@find_by(xpath='//*[@id="search"]/form/div[2]/input')
def input_ele(self) -> WebElement: ...
@find_by(xpath='//*[@id="search"]/form/div[3]/input')
def search_ele(self) -> WebElement: ...
def run(self):
time.sleep(1)
self.input_ele().send_keys("selenium")
time.sleep(2)
self.search_ele().click()
time.sleep(5)
4.操作层
封装好的功能用例模块,即测试用例的步骤
import time
from .base_page import BasePage
class LoginAction(object):
def login(self):
base_page = BasePage()
base_page.open_url("https://www.hao123.com/")
time.sleep(5)
base_page.get_loginpage().run()
5.业务层
测试类,添加测试用例
import unittest
from .login_action import LoginAction
class TestLogin(unittest.TestCase):
def test_search(self):
LoginAction().login()
if __name__ == '__main__':
unittest.main()