Selenium4 Python实现Page Factory设计模式,python新的定位方法
admin
2024-03-29 14:40:31
0


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()
 

相关内容

热门资讯

上期所:同意华菱钢铁“湘钢”牌... 8月28日,上海期货交易所公告,近日收到湖南华菱钢铁股份有限公司报送的相关申请材料,根据《上海期货交...
阿联酋向星链发放卫星互联网服务... 8月28日,据报道,阿联酋电信和数字政府监管局(TDRA)向SpaceX旗下星链(Starlink)...
米哈游法务部:编造米哈游“外包... 8月28日,米哈游法务部发文表示,近日,针对某社交平台用户“王大雄”(账号控制人王某雄)编造传播涉及...
快造科技完成10亿元C轮融资,... 8月28日,消费级3D打印企业快造科技(Snapmaker)完成10亿元C轮融资。本轮融资由凯辉基金...
蜜雪集团为何两日大跌14%? ... 我8月27日(披露日):蜜雪集团盘中一度跌超12%,收跌约7.7%~8.37%,报227.8港元28...
淘宝再造“新淘牌”:首批“黑标... 本文来源:时代周报 作者:刘婷淘宝正在挖掘新一代“淘品牌”。8月25日到26日,淘宝官方直播间启动I...
创业板指冲高回落跌1.41%,... 新京报贝壳财经讯 8月28日,市场全天冲高回落,双创指数均跌超1%。截至收盘,沪指跌0.11%,深成...
游戏“失血”,B站靠广告撑起二... 新京报贝壳财经讯(记者韦英姿)8月27日,B站公布的2026年二季报显示,二季度净营业额总额约79....
早盘冲高回落,尾盘加速跳水,A... 8月28日,双创指数集体冲高回落,此前一度涨超1%。截至收盘,沪指跌0.11%,深成指跌0.68%,...
硅业分会:本周工业硅期货高位震... 8月28日,中国有色金属工业协会硅业分会发布工业硅周评。本周工业硅市场呈现“期货高位震荡、现货持稳运...