Java 如何从另一个类访问另一个类的void方法的变量
这里驱动程序显示Java 如何从另一个类访问另一个类的void方法的变量,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,这里驱动程序显示null值,而我需要访问Browserselection.java的getDriver方法的值。我在MyMainClass.java中执行printlnBrowserselection.java具有正确的值;显示null 有没有办法从MyMainClass访问actionPerformed nethod的if条件的d1变量 我是Java新手,正在学习selenium 使用此方法: Code of Broweserselection.java @SuppressW
null
值,而我需要访问Browserselection.java
的getDriver
方法的值。我在MyMainClass.java中执行println
Browserselection.java
具有正确的值;显示null
有没有办法从MyMainClass访问actionPerformed nethod的if条件的d1变量
我是Java新手,正在学习selenium 使用此方法:
Code of Broweserselection.java
@SuppressWarnings("serial")
class Browserselection extends JFrame implements ActionListener
{
public void BrowserSelection1()
{ Some code...}
@Override
public void actionPerformed(ActionEvent e)
{
WebDriver d1 = null;
if(FireFox.isSelected())
{
dispose();
System.setProperty("webdriver.gecko.driver","driverPath");
d1 = new FirefoxDriver();
}
this.setDriver(d1);
}
public WebDriver setDriver(WebDriver driver)
{
this.driver2 = driver;
this.getDriver();
return this.driver2;
}
public WebDriver getDriver()
{
return this.driver2;
}
===========================================================================
Code of MyMainClass.java
public class MyMainClass{
public static void main(String[] args) throws InterruptedException, IOException {
Browserselection bs= new Browserselection();
bs.BrowserSelection1();
WebDriver driver=bs.getDriver();
System.out.println(driver + "Hello from main");
请注意,您必须在类中声明driver2,如:private WebDriver driver2代码>
你的全班同学都是这样的:
public WebDriver getDriver()
{
driver2 = new ChromeDriver();
return this.driver2;
}
使用此方法:
Code of Broweserselection.java
@SuppressWarnings("serial")
class Browserselection extends JFrame implements ActionListener
{
public void BrowserSelection1()
{ Some code...}
@Override
public void actionPerformed(ActionEvent e)
{
WebDriver d1 = null;
if(FireFox.isSelected())
{
dispose();
System.setProperty("webdriver.gecko.driver","driverPath");
d1 = new FirefoxDriver();
}
this.setDriver(d1);
}
public WebDriver setDriver(WebDriver driver)
{
this.driver2 = driver;
this.getDriver();
return this.driver2;
}
public WebDriver getDriver()
{
return this.driver2;
}
===========================================================================
Code of MyMainClass.java
public class MyMainClass{
public static void main(String[] args) throws InterruptedException, IOException {
Browserselection bs= new Browserselection();
bs.BrowserSelection1();
WebDriver driver=bs.getDriver();
System.out.println(driver + "Hello from main");
请注意,您必须在类中声明driver2,如:private WebDriver driver2代码>
你的全班同学都是这样的:
public WebDriver getDriver()
{
driver2 = new ChromeDriver();
return this.driver2;
}
问题不在驱动选择中。它位于代码的体系结构中。
请参阅下面的代码,这些代码可能会对您有所帮助
public class Browserselection {
private WebDriver driver2;
public void BrowserSelection1()
{
//some code
}
@Override
public void actionPerformed(ActionEvent e)
{
WebDriver d1 = null;
if(FireFox.isSelected())
{
dispose();
System.setProperty("webdriver.gecko.driver","driverPath");
d1 = new FirefoxDriver();
}
this.setDriver(d1);
}
public WebDriver setDriver(WebDriver driver)
{
this.driver2 = driver;
this.getDriver();
return this.driver2;
}
public WebDriver getDriver()
{
driver2 = new ChromeDriver();
return this.driver2;
}
}
Main方法将用于刚刚开始的项目,所以不需要在Main方法中创建Browserselection类的对象,而是在实际需要的地方创建该类对象
希望这将对您有所帮助。问题不在驱动选择中。它位于代码的体系结构中。
请参阅下面的代码,这些代码可能会对您有所帮助
public class Browserselection {
private WebDriver driver2;
public void BrowserSelection1()
{
//some code
}
@Override
public void actionPerformed(ActionEvent e)
{
WebDriver d1 = null;
if(FireFox.isSelected())
{
dispose();
System.setProperty("webdriver.gecko.driver","driverPath");
d1 = new FirefoxDriver();
}
this.setDriver(d1);
}
public WebDriver setDriver(WebDriver driver)
{
this.driver2 = driver;
this.getDriver();
return this.driver2;
}
public WebDriver getDriver()
{
driver2 = new ChromeDriver();
return this.driver2;
}
}
Main方法将用于刚刚开始的项目,所以不需要在Main方法中创建Browserselection类的对象,而是在实际需要的地方创建该类对象
希望这对您有所帮助。您是否调用过setDriver()?什么是代码inBrowserSelection1()方法?调用this.getDriver()的含义是什么;内部设置驱动程序?@AmitBera在BrowserSelection1()中我使用radiobutton组在jFrame中进行用户输入,并基于调用的公共void actionPerformed(ActionEvent e)。这工作正常。根据您的代码驱动程序可以设置为调用actionPerformed()
或setDriver()
方法调用,但我看不到您以前从未在代码中调用过它们bs.getDriver()
您调用过setDriver()吗?什么是代码inBrowserSelection1()方法?调用this.getDriver()的含义是什么;内部设置驱动程序?@AmitBera在BrowserSelection1()中我使用radiobutton组在jFrame中进行用户输入,并基于调用的公共void actionPerformed(ActionEvent e)。这工作正常。根据您的代码驱动程序可以设置为调用actionPerformed()
或setDriver()
方法调用,但我看不出您以前从未在代码中调用过它们bs.getDriver()