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

相关内容

热门资讯

微博回应被约谈:以最高标准整改... @微博管理员 9月20日消息,近日,网信部门对微博等平台热搜榜单环节管理不善问题进行了约谈并提出整改...
优迅股份科创板IPO暂缓审议 ... 中经记者 孙汝祥 夏欣 实习生 王鑫 北京报道上交所官网显示,9月19日,上交所上市审核委员会对厦门...
40岁去世!悲剧如何避免? 4... 9月19日下午,云海肴官方微博发文称,创始人赵晗因突发心梗于9月18日不幸去世,年仅40岁。心梗是心...
独家|阿里游戏再加码:打造熠点... 来源|Tech星球文|陈桥辉距灵犀互娱从虎鲸文娱(原阿里大文娱)独立运营不到1个月,阿里在游戏赛道的...
美联储降息,全球连锁反应来袭 ... 当地时间9月17日,美联储联邦公开市场委员会(FOMC)会议纪要释放关键政策信号——将联邦基金利率目...
停更4天后,罗永浩微博恢复更新... 9月20日,停更4天后,罗永浩再次就预制菜一事发微博评论。罗永浩转发了一张“预制菜”分级标准截图,他...
特朗普自曝美国从俄乌冲突中获利... 据CCTV国际时讯报道,当地时间9月19日,美国总统特朗普表示,美国并未直接为俄乌冲突花费资金,相关...
牛散“投诉”上市公司律师?关乎... 《公司法》规定,股东有权查阅公司章程、股东名册。2024年7月1日,新《公司法》实施后,股东可进一步...
失约的iPhone Air,焦... 经济观察报 记者 钱玉娟9月19日,苹果iPhone 17系列智能手机在中国开售。涌进苹果门店的消费...