org.openqa.selenium.interactions.Actions上的java.lang.NullPointerException;初始化>;

org.openqa.selenium.interactions.Actions上的java.lang.NullPointerException;初始化>;,selenium,Selenium,在POM中使用Actions类时,获取空指针异常 public class Homepage_purchase { WebDriver driver; @FindBy(xpath="//*[@id=\"menu-item-2822\"]") WebElement Purc_Form; @FindBy(xpath="//*[@id=\"menu-item-2824\"]") WebElement Purc_Form2; @FindBy(xpath="//*[@i

在POM中使用Actions类时,获取空指针异常

public class Homepage_purchase {

    WebDriver driver;

    @FindBy(xpath="//*[@id=\"menu-item-2822\"]") WebElement Purc_Form;
    @FindBy(xpath="//*[@id=\"menu-item-2824\"]") WebElement Purc_Form2;
    @FindBy(xpath="//*[@id=\"menu-item-2843\"]") WebElement Purc_Form6;

    public Homepage_purchase(WebDriver driver) {
    PageFactory.initElements(driver, this);
    this.driver=driver;
    }

    public void Purchaseform_1() {

    Actions act=new Actions(driver);
    act.moveToElement(Purc_Form).build().perform();
    act.moveToElement(Purc_Form2).build().perform();
    act.moveToElement(Purc_Form6).build().perform();
    Purc_Form6.click();
}
}

public class baseTest {

    public WebDriver driver;

    public void browserLaunch(String Browser_is) {

        if(Browser_is.equalsIgnoreCase("Chrome")){
            System.setProperty("webdriver.chrome.driver","C:\\Users\\veerendra\\Downloads\\python software\\chromedriver.exe");
            driver=new ChromeDriver();
        }
        else if(Browser_is.equalsIgnoreCase("firefox")){
            System.setProperty("webdriver.chrome.driver","C:\\Users\\veerendra\\Downloads\\python software\\chromedriver.exe");
            driver=new ChromeDriver();
        }
        }
    public void Url_selection(String URL,int waitime) {

        driver.get(URL);
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(waitime, TimeUnit.SECONDS);}


public class Homepage_mouseover extends baseTest {

    Homepage_purchase HomePurchase;

    @BeforeClass
    public void test() {
        Homepage_mouseover ob=new Homepage_mouseover();
        ob.browserLaunch("chrome");
        ob.Url_selection("http://www.globalsqa.com/", 60);  
    }

    @Test
    public void Test1() throws Exception  {
        HomePurchase=new Homepage_purchase(driver);
        System.out.println("1111");
        HomePurchase.Purchaseform_1();
        System.out.println("2222");

    }
失败:位于的Test1 java.lang.NullPointerException org.openqa.selenium.interactions.Actions.(Actions.java:44)位于 UI\u Webelements\u Homescreen.Homepage\u purchase.Purchaseform\u 1(Homepage\u purchase.java:28) 位于TestPackages.Homepage\u mouseover.Test1(Homepage\u mouseover.java:25) 位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) invoke(NativeMethodAccessorImpl.java:62)


您正在尝试在驱动程序之前实例化页面对象:

    Homepage_mouseover ob=new Homepage_mouseover();
    ob.browserLaunch("chrome");
    ob.Url_selection("http://www.globalsqa.com/", 60);  
将第一行移到第三行,并将驱动程序作为参数传递

    ob.browserLaunch("chrome");
    ob.Url_selection("http://www.globalsqa.com/", 60);  
    Homepage_mouseover ob=new Homepage_mouseover(driver);
我不知道为什么编译器没有捕捉到页面对象调用缺少驱动程序参数

    ob.browserLaunch("chrome");
    ob.Url_selection("http://www.globalsqa.com/", 60);  
    Homepage_mouseover ob=new Homepage_mouseover(driver);

另外,还有一个警告:如果您当前使用的是Selenium和Chrome版本,最大化将失败-搜索正确的方法以使用选项最大化。

我尝试了下面的方法。直接调用基类方法而不创建对象…现在工作正常

@BeforeClass
public void test() {
    browserLaunch("chrome");
    Url_selection("http://www.globalsqa.com/", 60); 

我试着像下面这样。直接调用基类方法而不创建对象…现在工作正常@课前公开无效测试(){browserLaunch(“chrome”);Url_选择(“,60);