selenium 封装

本文详细介绍了如何对Selenium进行封装,以提高Web自动化测试的效率和可维护性。通过创建自定义的浏览器驱动工厂,实现浏览器实例的统一管理和复用。同时,讨论了如何设计模块化的页面对象模型,简化测试脚本编写,以及如何整合PageFactory以增强元素定位功能。此外,还涵盖了异常处理和日志记录的实现,确保测试过程的稳定性和可追溯性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

# selenium的api很多。常用操作进行封装,
from selenium import webdriver
class Common:
    def __init__(self):
        self.webdriver.Chrome()
        self.implicitly_wait(3)
        self.driver.maximize_window()

    def open_url(self,url):
        self.driver.get(url)
        self.implicitly_wait(10)

    #定位
    def locateElement(self,locate_type,value):
        e1=None
        if locate_type=='id':
            e1=self.driver.find_element_by_id(value)
        elif locate_type=='name':
            e1=self.driver.find_element_by_name(value)
        elif locate_type=='class_name':
            e1=self.driver.find_element_by_class_name(value)
        elif locate_type=='tag_name':
            e1=self.driver.find_element_by_tag_name(value)
        elif locate_type=='link_text':
            e1=self.driver.find_element_by_link_text(value)
        elif locate_type=='patial_link_text':
            e1=self.driver.find_element_by_patial_link_text(value)
        elif locate_type=='xpath':
            e1=self.driver.find_element_by_xpath(value)
        elif locate_type=='css_selector':
            e1=self.driver.find_element_by_css_selector(value)

        if e1 is not None:
            return e1
    #点击所定位到的元素
    def click(self,locate_type,value):
        e1=self.locateElement(locate_type,value)
        e1.click()

    #直接对定位到的元素进行文本输入
    def input_data(self,locate_type,value,data):
        e1=self.locateElement(locate_type,value)
        e1.send_keys(data)

    # 获取定位到的元素中的文本内容
    def get_text(self,locate_type,value):
        e1=self.locateElement(locate_type,value)
        return e1.text

    #获取定位到的标签属性
    def get_attr(self,locate_type,value,data):
        e1=self.locateElement(locate_type,value)
        return e1.get_attribute(data)

    def close_driver(self):
        self.driver.quit()

    #收尾清理工作
    def __del__(self):
        time.sleep(3)
        self.driver.quit()
if __name__=='__main__':
    com=Common()
    com.open_url('http://www.baidu.com')
    com.open_url('http://www.hao123.com')
    com.click('id','su')
    time.sleep(3)
    # com.close_driver()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值