gpt4 book ai didi

java - 如何在多个 stepDefPages 中针对多个场景使用相同的 chromedriver,并且无需重新启动驱动程序?

转载 作者:太空宇宙 更新时间:2023-11-04 09:43:15 25 4
gpt4 key购买 nike

我想对我的应用程序进行测试,所以第一个场景是身份验证,完成后,我需要在下一页(即主页)上进行测试,那么如何在第二个场景中使用相同的驱动程序而不重新启动我的驱动程序?我想直接从以下位置开始:@given 我在主页上!

我有一个用于stepdefauthentification的类,另一个用于stepdefSearchCustomer的类,那么我如何在第二个类中使用第一个类中的驱动程序? chromedriver 的初始化位于第一页,我什至无法通过在第二页中执行: driver.geturl("") 来重新启动我的驱动程序,因为我们需要首先进行身份验证,以便显示主页。

这意味着我需要使用第一个场景中的 url 恢复驱动程序,然后在第二个场景中从那里开始。

最佳答案

  1. 你的场景不应该相互依赖,你的场景应该是自治的,在破坏特定场景之前,你应该准备好执行它所需的所有条件,最好在场景之后也清楚。

  2. 要为多种场景保留浏览器窗口,请将 WebDriver 实例设为静态,例如,您可以使用 Singleton Holder 模式。

我理解您的问题,要测试主页,您需要登录,所以您自然可能会认为按顺序执行场景可以解决问题,但这是不好的方法。

相反,要测试主页,可以将 cookie 加载到 Web 驱动程序中,以便它认为您已经登录到 session ,或者您可以创建 'before' @Login Hook ,该 Hook 可以检查您是否已登录,如果没有登录,则会在运行场景之前运行登录过程。

@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

关于java - 如何在多个 stepDefPages 中针对多个场景使用相同的 chromedriver,并且无需重新启动驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55726150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com