python selenium unittest_python selenium 同一个页面两个case中,driver 如何在unittest 中传递...

这篇博客探讨了在Python的unittest框架下,如何在不同的测试用例(case)间共享同一个selenium webdriver实例,以实现测试的连续性和效率。作者通过在setUp方法中初始化driver,并在tearDown方法中关闭driver,确保了driver在测试登录和登出场景间的传递和使用。示例代码展示了如何在TestLogin和TestLogout两个测试类中引用并操作同一个driver对象,以完成登录和登出的测试流程。
摘要由CSDN通过智能技术生成

测试一个登录登出,我在登录时已经实例化一个webdriver,我想在登出的case中引用这个driver.怎么样才能引用到该driver?

为什么我要引用登录case中的driver,而不是在登出case中再实例化一个driver? 如果我在登出时再次实例化一个driver, 那么就要再打开一个浏览器并且要给定一个url,显得测试不连续;

代码如下所示

class TestLogin(unittest.TestCase):

def setUp(self):

self.driver = webdriver.Chrome()

self.driver.implicitly_wait(10)

self.driver.get('https://www.some.com/aa/login.jsp')

def test_login(self):

username = 'xxx'

password = 'yyy!'

login_page = Login()

login_page.user_login(self.driver, username, password)

self.check_login()

def check_login(self):

current_url = self.driver.current_url

expected_url = '/aa/main/index.do'

self.assertIn(expected_url, current_url, msg="登录失败")

def tearDown(self):

self.driver.quit()

class TestLogout(unittest.TestCase):

# 往往登录后case依赖于登录case

def setUp(self, driver):

self.driver = driver

def test_logout(self):

logout_button = self.driver.find_element_by_xpath("//a[@οnclick='exitLogin();']")

logout_button.click()

logout_confirm = self.driver.find_element_by_css_selector(".exitLogin .btn-primary")

logout_confirm.click()

self.check_logout()

def check_logout(self):

current_url = self.driver.current_url

expected_url = 'aa/login.jsp'

self.assertIn(expected_url, current_url, msg="登出失败")

def tearDown(self):

self.driver.quit()

if __name__ == '__main__':

suite = unittest.TestSuite()

suite.addTest(TestLogin("test_login"))

suite.addTest(TestLogout("test_logout"))

runner = unittest.TextTestRunner()

runner.run(suite)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值