WatirやSeleniumなどのツールを使用する場合、唯一の解決策は、テストコードからブックマークレットJavaScriptを実行することだと思います。通常のブックマークを開くことは、いくつかのURLに移動することと同じです。
ブックマークレットJavaScriptはそのプロパティから取得できます。例として、 ListAllLinksブックマークレットを取り上げましょう。のJavaScriptは次のとおりです。
javascript:WN7z=open('','Z6','width=400,height=200,scrollbars,resizable,menubar');DL5e=document.links;with(WN7z.document){write('<base target=_blank>');for(lKi=0;lKi<DL5e.length;lKi++){write(DL5e[lKi].toString().link(DL5e[lKi])+'<br><br>')};void(close())}
スクリプトから、開いたウィンドウ名が次のようになっていることがわかりZ6
ます。コードで必要になります。残念ながら、私はWatirについてあまり知らないので、私の例はSelenium 2.0(別名WebDriver)とJavaですが、Watirでも同じことができると思います。
WebDriver driver = new InternetExplorerDriver();
// Open Google page
driver.get("http://www.google.com.ua/");
// Search for something
WebElement searchField = driver.findElement(By.name("q"));
searchField.sendKeys("webdriver");
searchField.submit();
// Bookmarklet script, note that javascript: was removed from original booknarklet
String script = "WN7z=open('','Z6','width=400,height=200,scrollbars,resizable,menubar');DL5e=document.links;with(WN7z.document){write('<base%20target=_blank>');for(lKi=0;lKi<DL5e.length;lKi++){write(DL5e[lKi].toString().link(DL5e[lKi])+'<br><br>')};void(close())}";
// Execute bookmarklet script
((JavascriptExecutor) driver).executeScript(script);
// Switch to the newly opened window
driver.switchTo().window("Z6");
// Find all the links in the bookmarklet window
List<WebElement> links = driver.findElements(By.tagName("a"));
// And list their text - you can do anything with them
for (WebElement link : links) {
System.out.println(link.getText());
}
driver.quit();
私が理解しているように、あなたはブックマークレットをテストしています。ページ上のリンクを調べる必要がある場合は、Seleniumを使用してこれを行うことができます(Watirもこれを行うことができると思います:)