public boolean close() {
        if (!isOpen()) {
            return true;
        }
        Widget close = ctx.widgets.getValidated(new Filter<Widget>() {
            @Override
            public boolean accept(Widget element) {
                return element.getParentId() == WIDGET_ID && element.getId() == CLOE_COMP_ID;
            }
        }).get(0);
        if (close != null) {
            Point p = getCenter(close.getBounds());
            ctx.mouse.click(p.x, p.y);
            Timer t = new Timer(3000);
            while (isOpen() && t.isRunning()) {
                Utils.sleep(Utils.random(100, 200));
            }
        }
        return !isOpen();
    }