Business层如果涉及多个Handle, driver如何能保证是同一个

来源:2-8 封装business层

qq_毅笑而过_0

2020-03-13

目前我们公司的App很适合像老师这样的分层Page->Handle->Business->Case. 因此就想用这个结构来写。
但如果一个Business是在多个页面点击跳转的结果,如何能让driver保证是同一个?
如果在Business层里实例化多个Handle,这样是会产生多个driver。

写回答

1回答

qq_毅笑而过_0

提问者

2020-03-13

去掉在page层的driver创建,改在case的setup class里创建driver,然后driver传递->business->handle->page,可以解决多个页面同一个driver的问题。

但是为什么LoginBusiness里只执行了第一个页面的操作,第二个页面不操作也没有输出了呢?

from handle.login_handle import LoginHandle
from handle.idle_handle import IdleHandle
import time
class LoginBusiness:
    def __init__(self,driver):
        self.idle_handle = IdleHandle(driver)
        self.login_handle = LoginHandle(driver)
        
    def login_pass(self):
        time.sleep(50)
        self.idle_handle.click_secret_button()
        '''
        以下都不执行了?
        '''
        print("Wait for the login page")
        print("selfDriver of LoginBusiness is:")
        print(self.driver)
        self.driver.implicitly_wait(5000)
        self.login_handle.input_username('123')
        self.login_handle.input_password('321')
        self.login_handle.click_login()


0
5
qq_毅笑而过_0
回复
Mushishi
嗯嗯,我把driver print出来,确实是同一个,我遇到的是另一个问题,再研究中。
2020-03-19
共5条回复

Python主讲移动端自动化测试框架Appium

APP自动化基础知识、po模型、关键字模型、服务自动化、持续集成

1508 学习 · 1333 问题

查看课程