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

标签 java selenium-webdriver appium appium-android

我正在尝试使用 junit cucumber 设置一个框架,但每次当我在页面类中扩展以使用 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']"));
    }
}

有人可以指导我为什么当我从 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']"));
}

关于java - 无法在appium中初始化驱动程序。找不到错误。附截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59297042/

相关文章:

java - 任何集合类型的列表,也具有通用数据类型

java - 如何在 Spring applicationContext.xml 中读取 JVM 参数

javascript - 使用 selenium webdriver 清除依赖文本框时未启用文本框

python - MaxRetryError : HTTPConnectionPool: Max retries exceeded (Caused by ProtocolError ('Connection aborted.' ,错误(111, 'Connection refused')))

从 JNI 运行时,Java ShutdownHook 无法加入主线程

java - Jackson ObjectMapper 中的惰性对象未转换为 null

java - Selenium WebDriverWait.until(invisiblityOfAllElements) 在 NoSuchElementException 上返回超时

selenium - 如果激活了多个驱动程序,是否可以获取使用 Selenium 和 Appium 打开的事件驱动程序的 session_id?

android - 苹果。找不到模块 'appium-base-driver'

javascript - browser.saveScreenshot(),不创建文件(nodeJS)