May I suggest another feature? I don't like how WebDriver works with frames. I have to constantly switch between frames, I cannot simply "inject" element from a specific frame. I would love to have something like the following:
@FindBy(id = "menuBar")
@InFrame(id = "header")
private MenuBarFragment menuBar;
In this case Graphene should switch to frame "header" before any operation on menuBar and switch back to previous frame after (today, I have to do it manually). Elements not annotated with @InFrame should work on current frame just as today.
I don't know if it is already on the roadmap (Graphene or Selenium); sorry, I'm too lazy to go through all the issues. It seems to me that it is not too complex to do it with Arquillian/Graphene - you only need one more interceptor.
htfv (Aliaksei Lahachou)
your proposal seems awesome!
This real use case scenarioes is exactly what we target to improve in Graphene.
You could start with creating feature request for Graphene 2: https://issues.jboss.org/browse/ARQGRA
On a technical note, I don't think it will be hard to implement this nowadays.
As you said it seems just like a matter of adding interceptor, which will be built-in feature in Graphene Beta1.
But this means we need to allow interceptors on the level of page fragments, which is not built-in now,
and additonally we need to test that those interceptors will be propagated to whole graph of objects under top-level fragment.