如何在同一个包中的当前java文件中使用其他java文件的变量?

时间:2015-09-27 08:02:29

标签: java extends

MouseActions.java文件的驱动程序对象为FirefoxDriver class。 我有另一个keyactions.java文件,我已将此课程扩展为MouseActions.java

现在我想在MouseActions.java文件中使用keyactions.java文件的驱动程序对象,而不实例化新对象。

但是我收到错误“行上的多个标记”

MouseActions.java档案:

package myproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;

public class mouseOverEvent
{
    public static void main(String[] args) {
        WebDriver driver=new FirefoxDriver();
        driver.get("http://www.google.co.in");
        Actions Builder=new Actions(driver);
        WebElement home=driver.findElement(By.xpath(".//*[@id='tsf']/div[2]/div[3]/center/input[2]"));
        Action mouseOverHome= Builder.moveToElement(home).click().build();
        mouseOverHome.perform();
    }
}

keyactions.java档案:

package myproject;

public class KeyStrokesEvent extends mouseOverEvent{    
    driver.get("http://www.facebook.com");  
}

2 个答案:

答案 0 :(得分:0)

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Scanner;
import java.util.Set;


public class Sample {

     public static void main(String[] args) {

         ArrayList<Names> menu = new ArrayList<Names>();
         menu.add(new Names("chandru","image"));
         menu.add(new Names("vikki","image"));
         menu.add(new Names("karthick","image"));
         menu.add(new Names("chandru","image"));
         menu.add(new Names("karthick","image"));
         menu.add(new Names("chandru","image"));
         menu.add(new Names("karthick","image"));
         menu.add(new Names("vikki","image"));
         menu.add(new Names("karthick","image"));
         menu.add(new Names("harish","image"));
         menu.add(new Names("vivek","image"));
         menu.add(new Names("harish","image"));

         ArrayList<Names> al = new ArrayList<Names>();

          Set<Names> hs = new HashSet<Names>();
          hs.addAll(menu);

          al.clear();
          al.addAll(hs);

          System.out.println(al);

     }
 }

驱动程序变量在方法中定义,其范围仅限于该方法。它可以在它之外访问。

您需要将其声明为类级别,以便在子类中进行访问。要在不创建对象的情况下访问它,请将其声明为WebDriver driver=new FirefoxDriver(); 变量并使用类名访问它。

我想知道为什么要将Main类扩展到其他类?

答案 1 :(得分:0)

您是否尝试过将驱动程序变量设为全局?

package myproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;


public class mouseOverEvent {
    WebDriver driver=new FirefoxDriver();
    public static void main(String[] args){
        driver.get("http://www.google.co.in");
        Actions Builder=new Actions(driver);
        WebElement home=driver.findElement(By.xpath(".//*[@id='tsf']/div[2]/div[3]/center/input[2]"));
        Action mouseOverHome= Builder.moveToElement(home).click().build();
        mouseOverHome.perform();
    }
}

变量是方法main()的本地变量,这就是为什么你不能在该方法之外访问它的原因。然而,使其成为全球性的,使其可以访问。