[英]How do i access variable of void method of other class from another class
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");
here driver shows null
value while i need to access of value of Browserselection.java
's getDriver
method's value. 在这里驱动程序显示
null
值,而我需要访问Browserselection.java
的getDriver
方法的值。 I do println
Browserselection.java
has proper value while in MyMainClass.java
bs.getDriver()
; 我在
MyMainClass.java
bs.getDriver()
println
Browserselection.java
具有适当的值bs.getDriver()
; shows null
. 显示
null
。
is there any way to access d1 variable of actionPerformed nethod's if condition from MyMainClass? 有什么办法可以从MyMainClass中访问actionPerformed nethod的d1变量?
I am new to Java and learning selenium. 我是Java和学习硒的新手。
Use this method : 使用此方法:
public WebDriver getDriver()
{
driver2 = new ChromeDriver();
return this.driver2;
}
Note that you have to declare the driver2 in your class like : private WebDriver driver2;
注意,您必须在类中声明driver2,例如:
private WebDriver driver2;
Your whole class would look like this : 您的整个课堂看起来像这样:
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;
}
}
Issue is not in drived selection. 驱动选择中不存在问题。 it is in architecture of your code.
它是您代码的体系结构。 see below code might help you.
请参阅下面的代码可能会帮助您。
@SuppressWarnings("serial")
class Browserselection extends JFrame implements ActionListener
{
public void BrowserSelection1(String selectedBrower)
{
WebDriver d1 = null;
if(selectedBrower.equals("firefox")){
d1 = new FirefoxDriver();
}else if(selectedBrower.equals("firefox")){
d1 = new ChromeDriver();
}
}
/*
As per this code , your input from user will be received in this method
*/
@Override
public void actionPerformed(ActionEvent e)
{
String driverSelected = "";
if(FireFox.isSelected()){
driverSelected = "firefox";
}else if(Chrome.isSelected()){
driverSelected = "chrome";
}
Browserselection bs= new Browserselection();
bs.BrowserSelection1(driverSelected);
}
}
Main method will be used for just start your project, so no need to create object of Browserselection class in main method, rather create that class object where it actually require. Main方法将仅用于启动项目,因此无需在main方法中创建Browserselection类的对象,而是在实际需要的位置创建该类对象。
Hope this will help you. 希望这会帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.