我正在使用TestNG和Java来自动化android应用。
我很难从一个类调用方法到另一个类。
这是代码。
第1类(鸦片)
//public AndroidDriver<AndroidElement> driver;
@BeforeSuite
public static AndroidDriver<AndroidElement> capabilities() throws MalformedURLException {
// TODO Auto-generated method stub
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device");
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "100");
cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "App Package");
cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY,"App Activity");
cap.setCapability("autoGrantPermissions", true);
cap.setCapability("autoAcceptAlerts", true);
AndroidDriver<AndroidElement> driver=new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),cap);
return driver;
}
}
我需要在另一个.java类中调用capabilities()
方法,但是我正在使用TestNG。
因此在新类的@Test
中,我需要在变量驱动程序中使用此方法。我不能通过将此类扩展到新类来做到这一点。还有其他方法吗?
答案 0 :(得分:0)
在这种情况下,您可以使用多级继承。创建一个可以设置功能的类,并从另一个类扩展该类,在该类中编写@BeforeSuite,然后从测试类扩展该类,然后@BeforeSuite将在所有测试类中自动运行。
例如:
class CapabilitiesClass{
public void setCapabilities(){
//Set your capabilities here
}
}
class BaseClass extends CapabilitiesClass{
//Write your BeforeSuite here and call the parent class method
@BeforeSuite
public void setUp(){
setCapabilities();
}
class TestClass extends BaseClass{
//Write your @Test here
}
答案 1 :(得分:0)
使用以下方法将类创建为DriverUtility
public class DriverUtility {
public static AndroidDriver<AndroidElement> capabilities() {
在您的测试中,将其称为:
public AndroidDriver<AndroidElement> driver = DriverUtility.capabilities();