python设置全局可访问的driver对象方法

最近项目要用Python来写自动化,我根据之前现有的Ruby框架来重写。发现一个最大的区别,全局变量,Ruby是可以全工程可见,而Python只能在当前py文件内可见。其实在开发中我们都会要求尽量少用全局变量,以避免带来的不可预见的问题。但是在做selenium框架时,driver对象的必须全工程访问的。所以按照之前ruby的写法,$driver,一处声明,全局可用就不行了。 

driver对象的产生是封装在浏览器启动的方法中,我们在case中调用了这个启动方法,也就产生了一个driver对象。而这个driver对象在其他很多py文件里都要用到,即使这里把driver对象作为一个全局变量,其他py文件也没法访问。在一个common类里,设置一个类变量,driver,再创建一个set_driver方法,将启动浏览器获取的driver赋值给common的类变量driver。

class Common:   
    
    driver=None          #类变量driver,全局其他地方通过这个类变量来访问driver对象
    def set_driver(self,dr):
        Common.driver=dr
        return Common.driver

在运行case时启动浏览器和给common的driver类变量赋值

self.dr=Common().starting()      #启动浏览器产生driver对象
Common().set_driver(self.dr)        #给common的driver类变量赋值

在其他地方获取当前driver,如ElementBase基础类中:

from *****.common import Common      #先导入common模块
..........
def elements(self):
        return Common.driver.find_elements_by_xpath(*****)     #Common.driver访问当前driver对象

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值