不能调用";io.appium.java_client.android.AndroidDriver.manage();因为";“这个司机”;是空的

不能调用";io.appium.java_client.android.AndroidDriver.manage();因为";“这个司机”;是空的,appium,Appium,我是Appium的新手,刚刚开始,我想通过创建一个对象从其他类调用方法。但当我调用方法时,它显示“this.driver”为空。如何通过创建对象从其他类调用方法??有可能吗??注意:我已经使用了“扩展类”,所以我没有在多个类中使用它 //Here, I call methods from other classes...... import java.net.MalformedURLException; import java.time.Duration; import java.util

我是Appium的新手,刚刚开始,我想通过创建一个对象从其他类调用方法。但当我调用方法时,它显示“this.driver”为空。如何通过创建对象从其他类调用方法??有可能吗??注意:我已经使用了“扩展类”,所以我没有在多个类中使用它

//Here, I call methods from other classes......
 import java.net.MalformedURLException;
 import java.time.Duration;
 import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
//import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.Point;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.touch.TouchActions;
import org.testng.annotations.Test;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.android.nativekey.AndroidKey;
import io.appium.java_client.android.nativekey.KeyEvent;
import io.appium.java_client.MobileBy;
import io.appium.java_client.MobileElement;
import io.appium.java_client.TouchAction;
import static io.appium.java_client.touch.LongPressOptions.longPressOptions;
import static java.time.Duration.ofSeconds;

import io.appium.java_client.touch.LongPressOptions;
import io.appium.java_client.touch.WaitOptions;
import io.appium.java_client.touch.offset.PointOption;

@Test(priority = 11)
public void IncompleteTask() {

    
    String ser="Update For Testing";
    Searching(ser);
    AllMethods scr=new AllMethods(driver);
    scr.Scroll();
    //Scroll();
    Point point1=driver.findElementByXPath("//android.widget.TextView[@text='Update For Testing']").getCenter();
    Point point2=driver.findElementByXPath("//android.widget.TextView[@text='Update For Testing']").getLocation();                  
    Swipping(point1,point2);
    
    driver.findElementById("bd.com.cslsoft.kandareeliteapp:id/ll_reAssign").click();
    //driver.findElementById("bd.com.cslsoft.kandareeliteapp:id/noButton").click();
    String mass=driver.findElementById("bd.com.cslsoft.kandareeliteapp:id/tvMessage").getText();
    driver.findElementById("bd.com.cslsoft.kandareeliteapp:id/yesButton").click();
    
    String mText="Are you sure you want to undo this Task?";
    if(mass.contains(mText))
    {
        driver.findElementById("bd.com.cslsoft.kandareeliteapp:id/yesButton").click();
            
    }

    System.out.println("IncompleteTask Executed!");
    driver.quit();

}
//这是我的allMethods课程

import java.time.Duration;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.Dimension;
import org.openqa.selenium.support.PageFactory;

import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.touch.WaitOptions;
import io.appium.java_client.touch.offset.PointOption;

import java.io.IOException;
import java.lang.NullPointerException;
public class AllMethods  {
   public AndroidDriver<AndroidElement>  driver;
   public AllMethods(AndroidDriver driver)
   {
    PageFactory.initElements(driver, this);
   }

   public void searching(String ser) {
       driver.findElementById("bd.com.cslsoft.kandareeliteapp:id/ll_search").click(); 
       driver.findElementById("android:id/search_src_text").sendKeys(ser);  
       driver.hideKeyboard();
       driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

}

public void Scroll() throws NullPointerException
{
    for(int i=0; i<3; i++)
    {
        
        Dimension dimension=driver.manage().window().getSize();
        int start_x=(int) (dimension.width*0.5);
        int start_y=(int) (dimension.height*0.2);
        
        int end_x=(int) (dimension.width*0.5);
        int end_y=(int) (dimension.height*0.8);
        
        TouchAction tcD=new TouchAction(driver);
        tcD.press(PointOption.point(start_x, 
          start_y)).waitAction(WaitOptions.waitOptions(Duration.ofSeconds(2)))
        .moveTo(PointOption.point(end_x, end_y)).release().perform();
    }

  }
 }
import java.time.Duration;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.Dimension;
导入org.openqa.selenium.support.PageFactory;
导入io.appium.java_client.TouchAction;
导入io.appium.java_client.android.AndroidDriver;
导入io.appium.java_client.android.AndroidElement;
导入io.appium.java_client.touch.WaitOptions;
导入io.appium.java_client.touch.offset.PointOption;
导入java.io.IOException;
导入java.lang.NullPointerException;
公共类方法{
公共AndroidDriver;
公共所有方法(AndroidDriver)
{
PageFactory.initElements(驱动程序,this);
}
公共作废搜索(字符串ser){
driver.findElementById(“bd.com.cslsoft.kandareleiteApp:id/ll_search”)。单击();
driver.findElementById(“android:id/search\u src\u text”).sendKeys(ser);
driver.hideKeyboard();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
}
public void Scroll()引发NullPointerException
{

对于(int i=0;i而言,
AllMethods
类中的方法指的是尚未初始化的驱动程序。即,它们指的是此驱动程序:
公共AndroidDriver;


您将需要添加
此。driver=driver
所有方法
构造函数中,这将使用在构造函数中传递的驱动程序的引用设置驱动程序。

我面临另一个问题,我的应用程序突然无法由appium服务器打开,但早上我运行了很多次。show--遇到内部错误running命令:错误:无法获取C:\Users\SYEDYU~1\AppData\Local\Temp\uia2\u device\u port\u guard上的锁。原始错误:错误:EEXIST:文件已存在,请打开尝试从该位置删除uia2\u device\u port\u guard文件(备份该文件,然后删除)