首先,我确信这个网站上有一个答案潜伏在这个网站上,我确实尝试了一下,但是我尝试的所有方法不断失败。我在Java编程方面仍然很新,所以对我来说很简单,因为你要见证的是一些令人难以置信的僵尸代码!Java - 通过一个按钮点击从一个类到主类
我想学习Selenium,但在编写测试之前,我想制作一个简单的IDE,询问您想要运行的浏览器以及要运行的测试。到目前为止,我已经在浏览器的弹出窗口中运行正常,但如果我想添加更多选项,那没有用。所以我现在试图在我的主类中创建一个Jframe,其中包含其他类,其中包含我希望添加的任何按钮的内容。这是事情出错的地方。
- 我有一个组合框,这需要一串可能的浏览器,你选择一个。 (这有效)
- 还有一个按钮,可以读取组合框中的当前选择。但是,这个按钮似乎并没有将信息传回我的主课程。我将发布下面的代码。
CLASS 1(主)
public class DynamicBrowsers {
public static void main(String[] args) {
BrowserBox b = new BrowserBox();
JFrame IDE = new JFrame("IDE");
IDE.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BrowserBox newContentPane = new BrowserBox();
IDE.setContentPane(newContentPane);
IDE.setPreferredSize(new Dimension(200, 100));
IDE.pack();
IDE.setVisible(true);
WebDriver driver = null;
if(b.browserValue == 0){
//driver=new FirefoxDriver();
System.out.println("No browser Selected");
}else if(b.browserValue == 1){
driver = new ChromeDriver();
System.out.println("FF!");
}else if(b.browserValue == 2){
driver = new ChromeDriver();
System.out.println("Chrome!");
}else if(b.browserValue == 3){
driver = new InternetExplorerDriver();
System.out.println("IE!");
}
}
}
CLASS 2(组合框和按钮)
public class BrowserBox extends JPanel {
public String browserPick;
String[] browsers = {"Please Select a Browser","Mozilla", "Chrome", "IE"};
public int browserValue = 0;
JButton runButton = new JButton("Run Test");
public JComboBox browserPicker = new JComboBox(browsers);
public BrowserBox() {
add(runButton);
add(browserPicker);
ActionListener cbActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent listChoice) {
String s = (String) browserPicker.getSelectedItem();//get the selected item
switch (s) {//check for a match
case "Please Select a Browser":
System.out.println(browserPick);
break;
case "Mozilla":
browserPick = "Mozilla";
System.out.println("Could have been a worse choice than " + browserPick);
break;
case "Chrome":
browserPick = "Chrome";
System.out.println("Good choice picking " + browserPick);
break;
case "IE":
browserPick = "IE";
System.out.println("For some reason you chose " + browserPick);
break;
default:
browserPick= "Please Select a Browser";
System.out.println("No match selected, defaulting too " + browserPick);
break;
}
}
};
ActionListener bActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent runClicked) {
if (browserPick == "Mozilla"){
browserValue = 1;
System.out.println("FF clicked " + browserValue);
}
else if (browserPick == "Chrome"){
browserValue = 2;
System.out.println("Chrome clicked " + browserValue);
}
else if (browserPick == "IE"){
browserValue = 3;
System.out.println("IE clicked " + browserValue);
}
}
};
browserPicker.addActionListener(cbActionListener);
runButton.addActionListener(bActionListener);
}
}
我想象我实现这一切错。我觉得我应该让这个按钮成为一个单独的课程或主班级,但我不确定。如果有人能指出我的方向是正确的,请指出我做错了什么,如果可能的话提供一个简单的解决方案,那将很棒。
谢谢 法雷尔
在不同的班上做所有事情。只使用main来运行JFrame。 – neoprez
我有一种感觉,那就是我应该如何去做。我想我将不得不对所有事情进行重大调整,或者可能只是重新开始。谢谢:) –