如何在多个场景中的多个stepDefPages中使用相同的chromedriver,而无需重新启动驱动程序?

哈哈尔·埃拉特里

我想对我的应用程序进行测试,因此第一种情况是身份验证,完成后,我需要在下一页即主页上进行测试,因此在第二种情况下如何在不重新启动驱动程序的情况下使用相同的驱动程序?我想直接从:@given开始我在主页上!

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

这意味着我需要在第一种情况下使用其URL恢复驱动程序,然后在第二种情况下从那里开始。

马修克
  1. 您的方案不应该相互依赖,您的方案应该是独立的,在销毁特定方案之前,您应该准备执行它所需的所有条件,最好在方案完成后也要清除。

  2. 要为多种情况保留浏览器窗口,请将您的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“重新加载” mac音频驱动程序而无需重新启动

从Radeon驱动程序取消绑定GPU,而无需重新启动lightdm

删除nouveau驱动程序(nvidia),而无需重新启动

如何在多个驱动程序中使用功能?

如何在Windows 7中重新启动视频卡驱动程序?

如何在Genymotion和Android Studio中重新加载应用程序而无需重新启动模拟器?

如何从冻结中恢复而无需重新启动?

如何在不重新启动的情况下卸载Process Monitor驱动程序?

如何重新加载Nvidia驱动程序,(Nvidia Optimus / multiscreen:如何在休眠/挂起后重新启动optirun)

如果提供种子,如何获得相同的初始结果,而无需在Tensorflow中重新启动Ipython内核

如何使用批处理文件-简单的应用程序重新启动音频驱动程序

如何在Express上重新加载一个文件而无需重新启动?

刷新视图而无需重新启动应用程序

重新启动驱动程序后,如何确保不重新计算DAG?

如何在Windows 8中通过命令行交换鼠标主键而无需重新启动?

如何在Windows 8.1的任务栏中还原丢失的语言图标,而无需重新启动PC?

如何在页面中查找多个元素而无需每次都重新阅读内容?

在IDE中使用Wildfly Swarm进行开发而无需重新启动-在某个地方“热部署”?

如何在多个div上使用相同的jQuery函数而无需重复代码

在多个Visual Studio版本中使用相同的扩展名和工作负载,而无需重新下载

重新启动USB鼠标驱动程序?

在 Raspberry Pi 上重新启动崩溃的驱动程序

如何刷新注册表项而无需重新启动?

当存在多个相同硬件的驱动程序时,如何选择要在启动时加载的驱动程序的一个版本?

创建并使用组而无需重新启动

GPU驱动程序仅在PCI-E 16x插槽中重新启动

在19.10中重新启动神秘的触摸板驱动程序

如何添加虚拟主机而无需在 bitnami 服务器中重新启动 apache

强行删除 spark pod 驱动程序时,驱动程序未重新启动