我认为,如果您想使用 Watir 或 Selenium 之类的工具,唯一的解决方案是从您的测试代码中执行小书签 JavaScript。打开序号书签与导航到某个 URL 相同。
您可以从其属性中获取小书签 JavaScript。让我们以列出所有链接书签为例。的 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 也可以执行此操作:)