Java 无法在appium中初始化驱动程序。找不到错误。截图

Java 无法在appium中初始化驱动程序。找不到错误。截图,java,selenium-webdriver,appium,appium-android,Java,Selenium Webdriver,Appium,Appium Android,我试图用junit cucumber设置一个框架,但每次当我在page类中扩展以使用driver.findelements时,驱动程序都返回null package core; import java.net.MalformedURLException; import java.net.URL; import org.openqa.selenium.remote.DesiredCapabilities; import io.appium.java_client.MobileElement;

我试图用junit cucumber设置一个框架,但每次当我在page类中扩展以使用driver.findelements时,驱动程序都返回
null

package core;

import java.net.MalformedURLException;
import java.net.URL;

import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.MobileCapabilityType;

public class DriverFactory {

    protected static AndroidDriver<MobileElement> driver;

    public void createdriver() throws MalformedURLException
    {

        DesiredCapabilities cap = new DesiredCapabilities();

        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "MS OnePlus7");
        cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9");
        cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "uiautomator2");
        cap.setCapability(MobileCapabilityType.APP, "C:\\framework\\src\\test\\Resources\\APK\\Telegram.apk");
        cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, 60);
        cap.setCapability(MobileCapabilityType.NO_RESET, true);
        cap.setCapability(MobileCapabilityType.UDID, "62afbd2d");

        driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    }
}



package pages;

import org.openqa.selenium.By;

import core.DriverFactory;

public class telegrampage extends DriverFactory {


    public void openhome()
    {
        System.out.println("driver is returning "+driver);
        driver.findElement(By.xpath("//android.widget.FrameLayout[@content-desc='New Message']"));
    }
}
包核;
导入java.net.MalformedURLException;
导入java.net.URL;
导入org.openqa.selenium.remote.DesiredCapabilities;
导入io.appium.java_client.MobileElement;
导入io.appium.java_client.android.AndroidDriver;
导入io.appium.java_client.remote.MobileCapabilityType;
公共类驱动工厂{
受保护的静电驱动器;
public void createdriver()引发错误的FormedUrlexception
{
DesiredCapabilities=新DesiredCapabilities();
cap.setCapability(移动能力类型设备名称,“MS OnePlus7”);
cap.setCapability(移动能力类型.PLATFORM_版本,“9”);
cap.setCapability(移动能力类型.自动化名称,“uiautomator2”);
cap.setCapability(MobileCapabilityType.APP,“C:\\framework\\src\\test\\Resources\\APK\\telegrame.APK”);
cap.setCapability(MobileCapabilityType.NEW_命令超时,60);
上限设置能力(MOBILECABILITYTYPE.NO_重置,真);
cap.setCapability(MobileCapabilityType.UDID,“62afbd2d”);
驱动程序=新的AndroidDriver(新的URL(“http://127.0.0.1:4723/wd/hub"(香港法例第六章),;
}
}
包装页;
导入org.openqa.selenium.By;
导入core.DriverFactory;
公共类电报页扩展DriverFactory{
公屋
{
System.out.println(“驱动程序正在返回”+驱动程序);
findElement(By.xpath(“//android.widget.FrameLayout[@content desc='New Message']”);
}
}

有人能告诉我为什么我从DriverFactory继承时得到“null”吗?在使用
driver.findElement()方法之前,您需要调用
createdriver()
方法。
将您的
openhome()
方法更改为:

public void openhome()
{
    DriverFactory driverFactory = new DriverFactory();
    driverFactory.createdriver();
    System.out.println("driver is returning "+driver);
    driver.findElement(By.xpath("//android.widget.FrameLayout[@content-desc='New Message']"));
}

欢迎来到SO。您从未调用过createdriver()方法。@Angusiasty抱歉,您没听清楚。您能详细说明一下吗?在这种情况下如何做到这一点。