请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

1回答

提问者 qq_毅笑而过_0 2020-03-13 16:53:40

去掉在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 回复 有任何疑惑可以回复我~
  • 提问者 qq_毅笑而过_0 #1
    发现构造方法写错了。。。。改成如下,解决了
    
        def __init__(self,driver):
            self.driver = driver
            self.idle_handle = IdleHandle(self.driver)
            self.login_handle = LoginHandle(self.driver)
    回复 有任何疑惑可以回复我~ 2020-03-13 17:29:33
  • Mushishi 回复 提问者 qq_毅笑而过_0 #2
    不错不错。加油哟
    回复 有任何疑惑可以回复我~ 2020-03-14 12:22:14
  • 提问者 qq_毅笑而过_0 回复 Mushishi #3
    我发现我这样写还是有问题,在test case里要是调用多个business,每个business里的driver还是不一样的。
    回复 有任何疑惑可以回复我~ 2020-03-17 16:51:09
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信