为了账号安全,请及时绑定邮箱和手机立即绑定

如何初始化驱动程序对象,以便所有类都可以使用它

如何初始化驱动程序对象,以便所有类都可以使用它

慕少森 2022-06-04 10:56:04
如何初始化驱动程序以便它可以被所有类使用大家好,我正在使用 Appium、Selenium 和 Cucumber 在 JAVA 中编写测试自动化框架。我首先在我的一个测试步骤文件中声明一个 Appium 驱动程序,然后根据被测应用程序将其转换为 Android 驱动程序或 iOS 驱动程序。我需要一些帮助 - 我需要我的所有类文件才能访问此驱动程序实例,但我不确定如何执行此操作。测试是从功能文件驱动的,并且一些测试步骤位于不同的类文件中,那么它们如何都可以访问该驱动程序实例?谢谢马特
查看完整描述

3 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

您可以将AppiumDriver定义为静态


public class AppiumHelper(){

   public static AppiumDriver<MobileElement> driver;


   public void setupDriver(){

       //define your DesiredCapabilities       


       //initialize your driver


  }

然后你可以在你的测试方法中使用你的驱动程序,比如


public void test1(){

       MobileElement element= AppiumHelper.driver.findElementById("elements id");


}


查看完整回答
反对 回复 2022-06-04
?
qq_遁去的一_1

TA贡献1725条经验 获得超8个赞

您可以在可以完成所有其他配置设置的类中创建一个初始化方法,然后您可以创建该类的一个实例来调用 getDriver 方法。

例如:


public class initialiseDriver{

private static AppiumDriver<MobileElement> driver;


public AppiumDriver<MobileElement> getDriver() throws IOException {

if (PLATFORM_NAME.equals("Android")) {

    // setup the android driver

} else if (PLATFORM_NAME.equals("iOS")) {

    // setup the ios driver

}

return driver;

  }

}

您可以在要使用驱动程序的地方调用此方法。理想情况下,您应该通过在@BeforeSuite/@BeforeClass 方法中调用此方法来初始化驱动程序,这样您就不需要每次启动脚本时都调用此方法,因为它会被@BeforeSuite/@BeforeClass 隐式调用。


查看完整回答
反对 回复 2022-06-04
?
慕娘9325324

TA贡献1783条经验 获得超5个赞

Serenity PageObject类提供了一个内置的getDriver()方法,您可以在任何想要初始化驱动程序的地方调用该方法(最好在测试类中)。避免尝试在任何步骤定义/步骤库中初始化驱动程序(使用 @Managed 注释进行管理),否则它将抛出:

空指针异常


查看完整回答
反对 回复 2022-06-04
  • 3 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号