我想对我的应用程序进行测试,因此第一种情况是身份验证,完成后,我需要在下一页即主页上进行测试,因此在第二种情况下如何在不重新启动驱动程序的情况下使用相同的驱动程序?我想直接从:@given开始我在主页上!
我有一个用于stepdefauthentification的类,另一个用于stepdefSearchCustomer的类,那么如何在第二个类的第一类中使用驱动程序?chromedriver的初始化在第一页中,而我什至无法在第二页中通过执行driver.geturl(“”)来重新启动驱动程序,因为我们需要首先进行身份验证才能显示主页。
这意味着我需要在第一种情况下使用其URL恢复驱动程序,然后在第二种情况下从那里开始。
您的方案不应该相互依赖,您的方案应该是独立的,在销毁特定方案之前,您应该准备执行它所需的所有条件,最好在方案完成后也要清除。
要为多种情况保留浏览器窗口,请将您的WebDriver实例设为静态,例如可以使用Singleton Holder模式。
我了解您的问题,要测试主页,您需要先登录,所以自然地您可能会认为按顺序执行方案可以解决该问题,但这是不好的方法。
相反,要测试主页,可以将cookie加载到Web驱动程序中,使其认为您已经登录了会话,或者可以创建@Begin钩子“ before”, 该钩子可以检查是否已登录(如果未登录)将在运行方案之前运行登录过程。
@Before(value = "@Login")
public void loginIfNeeded()
{
// check you are logged in, if you are, do not login
// if you are not logged in, perform login procedure.
}
示例场景:
@Login
Scenario: Test main page
Given something
When something
Then something
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句