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

相关内容

热门资讯

爆亏60%?公募究极“倒霉蛋”... 大家知道,过去几年医药、新能源、核心资产集体表现不佳,但就是有个“倒霉蛋”同时管理着医药、新能源和核...
美国务院1350人大裁员,现场... 7月11日,美国务院开始大规模裁员,首批将解雇超过1350名公职人员。首批解雇对象包括在美国国内工作...
靠停车场生意做到中国第一,服务... 订阅 快刀财经 ▲ 做您的私人商学院看似简单的停车行为背后,是如何衍生这么大市场红利的?作者:唐纳德...
中国证监会原发行监管部副主任李... 中央纪委国家监委网站7月12日通报,据中央纪委国家监委驻中国证券监督管理委员会纪检监察组、江苏省纪委...
美国升级关税攻势 美国升级关税... 在“对等关税”暂缓期到期之际,特朗普政府密集升级关税攻势。7月7日及10日连续抛出三轮关税清单:第一...
鹿晗账号解禁后首晒自拍,秀“金... 7月12日,鹿晗发布三张自拍照,并配文称“夏天”,值得一提的是,这是鹿晗在账号恢复正常后首次晒照。目...
蔚来李斌:对四季度盈利依然充满...   中新经纬7月12日电 (龚宸芫)“从经营角度出发,我们更加重视四季度盈利目标。上半年已经过去,从...
断崖式降息,即将开启? 有望拉... 原创 刘晓博种种迹象显示,特朗普可能抓住了美联储主席鲍威尔的“短处”,正接近于“扳倒他”。如果真的是...
赵长鹏出狱后首笔投资!与美貌富... 来源 | 北美商业见闻周四凌晨,美国投资公司10X Capital在X上发布消息称,管理着约100亿...
近日择机发射! 天舟九号船箭组合体转运至发射区 将于近日择机发射 北京时间2025年7月12日,天舟九号货运飞船与长...