私はGraphene Page Objectを持っています。ライフサイクルを管理せずにDroneインスタンスを挿入する方法は?
@Location("/page")
public class MyPage {
@Drone
private WebDriver driver;
// page methods using the driver
}
とページオブジェクトを使用してテストクラス。
@RunWith(Arquillian.class)
public class MyTest {
@Test
public void test(@InitialPage MyPage page) {
// use page & assert stuff
}
@Test
public void anotherTest(@InitialPage MyPage page) {
// use page & assert stuff even harder
}
}
ここで、MyTestでメソッドスコープのDroneインスタンスを使用することにしました。だから私は追加...
public class MyTest {
@Drone
@MethodLifecycle
private WebDriver driver;
私はテストを実行すると、私は2つのブラウザを取得し、すべてのテストがエラーで終了します。明らかに、このライフサイクル管理は修飾子としても扱われます。
はい、Myページに@MethodLifecycle
を追加することも役に立ちます。しかし、これは解決策ではありません。ページはこれを気にするべきではなく、WebDriverの範囲に関係なくすべてのWebDriverで機能するはずです。無人機のライフサイクルを管理するための知識があるのはテストだけです。ページは、それが呼び出されたどんなコンテキストでも使用する必要があります。どのように達成できますか?