我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");
}
答案 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()的本地变量,这就是为什么你不能在该方法之外访问它的原因。然而,使其成为全球性的,使其可以访问。