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

相关内容

热门资讯

新疆吐鲁番沙漠惊现一只雪豹,当... 红星新闻记者从新疆维吾尔自治区野生动物救护中心了解到,3月21日在吐鲁番市鄯善县库木塔格沙漠景区被发...
“不敢生病,不敢消费”,农民养... “我自己手上有点钱,就免得去找孩子们要……尽量不给孩子们添麻烦。” 在今年全国两会湖北代表团的小组审...
原创 美... 美情报机构突然改口,不再预测“攻台”时间?一边喊和平一边卖武器,背后到底在盘算什么?外交部已把话彻底...
外媒述评:《哪吒2》凸显中国传... 2月15日消息,据报道,一个大眼魔童成功跻身票房巨头行列。报道称,《哪吒2》的成功在中国激发了巨大热...
广州市委金融办:大力活跃资本市... 2月15日消息,广州市委金融办印发2025年拼经济保安全行动方案,行动方案明确2025年金融工作的重...
消息称特朗普政府提议乌克兰用5... 2月15日消息,据报道,四名美国官员称,特朗普政府已向乌克兰建议,如果与俄罗斯达成协议结束冲突,美国...
特朗普:汽车关税将于4月2日左... 2月15日消息,美国总统特朗普:汽车关税将于4月2日左右到来。
多只主动权益类基金净值创下成立... 2月15日消息,今年以来,多只主动权益类基金(包括普通股票型基金、灵活配置型基金、偏股混合型基金和平...
民调显示:三分之二美国人认为对... 3月22日,美国哥伦比亚广播公司与英国民调机构舆观调查网(YouGov)联合开展的最新民调显示,美国...
【靠“夺取哈尔克岛”,特朗普能... 【靠“夺取哈尔克岛”,特朗普能让“霍尔木兹海峡”重开吗?】美军可能通过两栖、机降、空降三种方式夺取哈...