【发布时间】:2014-03-27 11:58:22
【问题描述】:
我正在 Selenium Grid 中运行代码。 我有一个名为 TestBase 的类,如下所示,我想在单击按钮时退出所有线程,但是当我单击按钮时会抛出 NullpointerException。
public class TestBase {
protected ThreadLocal<RemoteWebDriver> threadDriver = null;
Button b;
Frame f;
static boolean flag = true;
@BeforeMethod
public void setUp() throws MalformedURLException {
if(flag)
{
JFrame calcFrame = new JFrame();
flag = false;
calcFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JButton button1 = new JButton("1");
button1.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent ae) {closure();}
});
calcFrame.add(button1);
calcFrame.setVisible(true);
}
threadDriver = new ThreadLocal<RemoteWebDriver>();
DesiredCapabilities dc = new DesiredCapabilities();
FirefoxProfile fp = new FirefoxProfile();
dc.setCapability(FirefoxDriver.PROFILE, fp);
dc.setBrowserName(DesiredCapabilities.firefox().getBrowserName());
threadDriver.set(new RemoteWebDriver(new URL("http://192.168.3.7:4444/wd/hub"), dc));
}
public WebDriver getDriver() {
return threadDriver.get();
}
public void closure()
{
getDriver().quit();
}
@AfterMethod
public void closeBrowser() {
// log.info("In closeBrowser...");
getDriver().quit();
}
}
我猜它无法找到它必须退出的线程。请帮忙.. :)
【问题讨论】:
-
非常感谢阿列克谢的兴趣,但我理解我的错误并解决了它......但真的非常感谢......! :)
-
我所要做的就是在线程创建后包含框架代码..这样我就可以单独跟踪每个线程..:P
标签: java multithreading selenium-grid