confirmダイアログのキャンセルが押せない病
そんなwatijのアンチクショウを触っておるワケですが、再びダイアログ系で躓きました><
まず躓いている最中のテストコード。
@Test public void test_2_confirmのCancelを押す() { class Clicker implements Runnable { IE ie; public Clicker(IE ie) { this.ie = ie; } public void run() { try { this.ie.button(SymbolFactory.id, "btn2").click(); } catch (Exception e) { ; } } } try { this.ie.start(TEST_PAGE); Thread t = new Thread(new Clicker(this.ie)); t.start(); Thread.sleep(500L); t = null; Thread.sleep(4000L); // this.ie.confirmDialog().cancel(); // this.ie.sendKeys(this.ie.confirmDialog().title(), " "); } catch (Exception e) { e.printStackTrace(); fail(); } }
btn2というidを振られたボタンは、confirmダイアログを表示させる為のトリガーにしています。
で、主のスレッドではないスレッドにこのボタンを押させ、主スレッドで表示されているであろうconfirmダイアログを押させるのですが、[this.ie.confirmDialog().cancel();]を用いると
watij.time.TimeException: Timeout exceeded. Reason= Could not find Dialog with windowClassName = Button windowText=Cancel
とエラーログが図れます><([this.ie.confirmDialog().ok();]だと問題なく使えます><)
続いて、[this.ie.sendKeys(this.ie.confirmDialog().title(), " ");](第二引数はタブと半角スペース)を用いると、confirmダイアログから親画面にフォーカスが移る、というありえない挙動に><
けっこう痛いトコロで挙動が不明瞭、というのはツライですね。今週暇をぬって何とかここを解決させられると良いのですが。。。