0

特定の URL を開きたい (Watir/WatiN で比較的簡単に達成できる)、ブックマーク/ブックマークレットをクリックすると、特定のリンクが表示される Javascript ウィンドウが開きます。リンクの文言と URL を確認できるようにしたい。

「問題」は、Firefox ではなく IE (7 & 8) を使用する必要があるため、たとえば Selenium IDE を使用できず、Watir Recorder は Bookmarklet/Bookmark リンクに対応できないようです。

このタスクを部分的に実行する Wintask を使用してみましたが、独自のツール/スクリプト言語ではなく、このタスクに通常のプログラミング言語を使用したいと思います。

4

1 に答える 1

1

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もこれを行うことができると思います:)

于 2010-08-11T09:04:57.283 に答える