0

我想打开一个特定的 URL(在 Watir/WatiN 中相对容易实现),然后单击一个书签/书签,然后打开一个 Javascript 窗口,然后出现某些链接。我希望能够验证链接的措辞和 URL。

“问题”是必须使用 IE (7 & 8) 而不是 Firefox,这会阻止我使用 Selenium IDE,而 Watir Recorder 似乎无法处理 Bookmarklet/Bookmark 链接。

我尝试使用 Wintask 部分完成了这项任务,但我更愿意为这项任务使用常规编程语言,而不是专有工具/脚本语言。

4

1 回答 1

1

我认为,如果您想使用 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 也可以执行此操作:)

于 2010-08-11T09:04:57.283 回答