早くも壁><

Watijでテストコードからブラウザを操作する事で、cfneoでも提唱した「コード」と「仕様」を密接に紐付けるというアプローチが実現可能かどうかを現在あれこれ試し中です。

が、

INFO 2008-09-23 02:50:03,957 [BrowserEventLoop] The com.jniwrapper.win32.shdocvw.DWebBrowserEvents2 interface was not registered for com.jniwrapper.win32.shdocvw.server.DWebBrowserEvents2Server, because com.jniwrapper.win32.shdocvw.server.DWebBrowserEvents2VTBL class was not found.

というアラートっぽいログが出る以外、不自然なところが何一つ無いまま、JavaScriptのアラートがWatijから操作出来ないです><


試してみたのはこんなコード。

	@Test
	public void testAlertDialog() {
		try {
			IE ie = new IE();
			ie.start("http://localhost:8500/examples/forwatij/test1.cfm");
			assertEquals("Alert test[for Watij]", ie.title());
			ie.button(0).click();
			Thread.sleep(1000L);
			new Thread(new Runnable() {
				public void run() {
					try {
						IE ie = new IE();
						System.out.println("exists()=" + ie.alertDialog().exists());
						ie.alertDialog().ok();
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}).start();
			ie.sendKeys ("Microsoft Internet Explorer", " ");
			ie.close();
		} catch (Exception e) {
			e.printStackTrace();
			fail();
		}
	}

http://watij.com/wiki:faqをみようみまねしてみただけなのですが、ie.button(0).click();の実施直後、JavaScriptによるアラートがブラウザ上に現れ、OKを押して貰えるのを待ちます。が、このコードではOKを押せませんでした。つまり、ずーっとアラートが出たままです。


むむ。