Java 在Appium中使用Pagefactory时获取NullpointerException错误
我是阿皮姆的新手。我试图使用Pagefactory,但它给出了NullPointerException。我不知道如何使用pagefactory初始化对象。你的一点帮助将是可贵的。 这是我的密码:Java 在Appium中使用Pagefactory时获取NullpointerException错误,java,selenium,selenium-webdriver,appium,appium-android,Java,Selenium,Selenium Webdriver,Appium,Appium Android,我是阿皮姆的新手。我试图使用Pagefactory,但它给出了NullPointerException。我不知道如何使用pagefactory初始化对象。你的一点帮助将是可贵的。 这是我的密码: import java.net.MalformedURLException; import java.util.concurrent.TimeUnit; import org.openqa.selenium.*; import org.openqa.selenium.interactions.Actio
import java.net.MalformedURLException;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;
import io.appium.java_client.pagefactory.AndroidFindBy;
import io.appium.java_client.pagefactory.AppiumFieldDecorator;
public class Login extends Base
{
AndroidDriver<AndroidElement> driver;
Actions action;
public Login()
{
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}
@AndroidFindBy(xpath="//android.view.View[@index='7']")
public WebElement signOnWelcome;
@AndroidFindBy(xpath="//android.view.View[@index='6']")
public WebElement SignIn;
@AndroidFindBy(xpath="//android.widget.ImageView[@index='2']")
public WebElement Profile;
public void signIn(String em, String pw) throws InterruptedException, MalformedURLException
{
Login l= new Login();
PageFactory.initElements(driver, Login.class);
driver = Capabilities();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
l.signOnWelcome.click();
//driver.findElement(By.xpath("//android.view.View[@index='7']")).click();
action = new Actions(driver);
WebElement email = driver.findElement(By.xpath("//android.widget.EditText[@index='2']"));
l.email.click();
Thread.sleep(1000);
action.sendKeys(em).perform();
WebElement pass = driver.findElement(By.xpath("//android.widget.EditText[@index='4']"));
pass.click();
action.sendKeys(pw).perform();
Thread.sleep(1000);
l.SignIn.click();
l.Profile.click();
}
}
import java.net.MalformedURLException;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.*;
导入org.openqa.selenium.interactions.Actions;
导入org.openqa.selenium.support.FindBy;
导入org.openqa.selenium.support.PageFactory;
导入io.appium.java_client.AppiumDriver;
导入io.appium.java_client.android.AndroidDriver;
导入io.appium.java_client.android.AndroidElement;
导入io.appium.java_client.pagefactory.AndroidFindBy;
导入io.appium.java_client.pagefactory.AppiumFieldDecorator;
公共类登录扩展了基本类
{
机器人驱动;
行动;
公共登录()
{
initElements(新的AppiumFieldDecorator(驱动程序),this);
}
@AndroidFindBy(xpath=“//android.view.view[@index='7']”)
公共WebElement signOnWelcome;
@AndroidFindBy(xpath=“//android.view.view[@index='6']”)
公共网页元素登录;
@AndroidFindBy(xpath=“//android.widget.ImageView[@index='2']”)
公共网页元素简介;
public void signIn(字符串em,字符串pw)引发InterruptedException,MalformedUrlexException
{
Login l=新登录名();
initElements(驱动程序,Login.class);
驱动程序=功能();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
l、 signOnWelcome.click();
//findElement(By.xpath(“//android.view.view[@index='7']))。单击();
动作=新动作(驱动程序);
WebElement email=driver.findElement(By.xpath(“//android.widget.EditText[@index='2']);
l、 email.click();
睡眠(1000);
action.sendKeys(em.perform();
WebElement pass=driver.findElement(By.xpath(“//android.widget.EditText[@index='4']);
pass.click();
action.sendKeys(pw.perform();
睡眠(1000);
l、 sign.click();
l、 Profile.click();
}
}
我正在SignIn方法的Login中创建对象