2012年5月17日木曜日

WebDriver:特定のリンクアドレスを取得する

gooで始まるリンクアドレスを取得する。

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class firefoxTest {

 public static void main(String[] args) {

  WebDriver driver = new HtmlUnitDriver();

  // URLを開く
  driver.get("http://127.0.0.1/~yamato/fx7/WebDriverTest/index.html");

  // 検索結果のURLを取得
  WebElement link = driver.findElement(By.partialLinkText("goo"));
  System.out.println(link.getAttribute("href"));
 }
}


検索結果:
https://www.google.co.jp/

WebDriver:ページのリンクを取得する

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class firefoxTest {

 public static void main(String[] args) {

  WebDriver driver = new HtmlUnitDriver();

  // URLを開く
  driver.get("http://127.0.0.1/~yamato/fx7/WebDriverTest/index.html");

  // Aタグを取得
  List<WebElement> cheese = driver.findElements(By.tagName("a"));

  // 取得した要素の0番目のリンクアドレス
  System.out.println(cheese.get(0).getAttribute("href"));
  
  // 取得した要素の0番目のリンクテキスト
  System.out.println(cheese.get(0).getText());
 }
}

WebDriver:IDを指定してテキストを取得する

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class firefoxTest {

 public static void main(String[] args) {

  // ブラウザ(Firefox)を起動
  // WebDriver driver = new FirefoxDriver();
  WebDriver driver = new HtmlUnitDriver();

  // URLを開く
  driver.get("http://127.0.0.1/~yamato/fx7/WebDriverTest/index.html");

  WebElement addDynamicElement = driver.findElement(By.id("add"));

  String actual = addDynamicElement.getText();
  
  System.out.println( actual );

 }
}

WebDriver:ページのタイトル取得

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class firefoxTest {

 public static void main(String[] args) {

  // ブラウザ(Firefox)を起動
  // WebDriver driver = new FirefoxDriver();
  WebDriver driver = new HtmlUnitDriver();

  // URLを開く
  driver.get("http://127.0.0.1/~yamato/fx7/WebDriverTest/index.html");

  System.out.println(driver.getTitle());

 }
}

WebDriver 準備

selenium-java-2.21.0.zip をダウンロードする。

解凍する。
selenium-java-2.21.0.jar と
libs フォルダのの中のファイルをプロジェクトのjavaビルドパスに追加する。

参考
その他のhtmlテストツール
HtmlUnit
HttpUnit::Httpプロトコルのテストを重視した作り


2012年1月21日土曜日

名前の一括変更


名前の一括変更 : Alt + Shift + R

HTMLEditorKit 基本情報

一行ずつ処理するのに便利

http://java.sun.com/j2se/1.3/ja/docs/ja/api/javax/swing/text/html/HTMLEditorKit.html


クラス HTMLEditorKit.ParserCallback
handleStartTag  は、開始タグと終了タグを持つタグを取得する。
handleEndTag   は、開始タグと終了タグを持つタグを取得する。
handleSimpleTag は、終了タグを持たないタグを取得する。
handleText    は、HTMLの文字列の取得・処理を行います。
handleComment  は、コメントを取得する。
handleEndOfLineString は、ストリームの末尾を取得する。
import javax.swing.text.*;
import javax.swing.text.html.*;
import javax.swing.text.html.parser.ParserDelegator;
import java.io.*;

public class HtmlParser{

 public static void main(String[] args){
  HtmlParser p = new HtmlParser();
  p.exec();
 }

 public void exec() {
  Reader reader;
  try {

   FileInputStream is = new FileInputStream("E:/html/text.html");
   InputStreamReader in = new InputStreamReader(is, "SJIS");

   reader = new BufferedReader(in);

   MyParserCallback cb = new MyParserCallback();
   ParserDelegator pd = new ParserDelegator();
   pd.parse(reader, cb, true);
   reader.close();
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 class MyParserCallback extends HTMLEditorKit.ParserCallback {
  public void handleStartTag(HTML.Tag tag, MutableAttributeSet attr, int pos){
   System.out.println("スタートタグが呼ばれました");

  }
  public void handleText(char[] data, int pos) {
   System.out.println( new String(data) );
        }

  public void handleSimpleTag(HTML.Tag tag, MutableAttributeSet attr,int pos) {
   System.out.println("--------------  終了タグを持たないタグが呼ばれました");
  }
 }

}