1つのシナリオでクロスブラウザのテストを行う
Eclipse IDEのプラグインとして組み込めるSilk4JのJavaを使い、1つのテストシナリオを利用してInternet Explorer、Firefox、Google Chromeのクロスブラウザテストを行うサンプルスクリプトです。
package com.borland;
import com.borland.silktest.jtf.Desktop;
import com.borland.silktest.jtf.BrowserBaseState;
import org.junit.Test;
import com.borland.silktest.jtf.xbrowser.DomListBox;
import com.borland.silktest.jtf.xbrowser.DomTextField;
import com.borland.silktest.jtf.common.BrowserType;
import com.borland.silktest.jtf.common.types.MouseButton;
import com.borland.silktest.jtf.common.types.Point;
import com.borland.silktest.jtf.xbrowser.BrowserApplication;
import com.borland.silktest.jtf.xbrowser.DomRadioButton;
import com.borland.silktest.jtf.xbrowser.DomButton;
import com.borland.silktest.jtf.xbrowser.DomElement;
import org.junit.Assert;
import com.borland.silktest.jtf.xbrowser.DomLink;
public class AutoQuote {
private Desktop desktop = new Desktop();
@Test
public void XBrowserTestIE() {
runBrowserTest(BrowserType.InternetExplorer);
}
@Test
public void XBrowserTestChrome() {
runBrowserTest(BrowserType.GoogleChrome);
}
@Test
public void XBrowserTestFireFox() {
runBrowserTest(BrowserType.Firefox);
}
private void runBrowserTest(BrowserType browserType) {
String url = "demo.borland.com/InsuranceWebExtJS/index.jsf";
BrowserBaseState baseState = new BrowserBaseState(browserType, url);
BrowserApplication br = baseState.execute(desktop);
br.<DomListBox>find("//BrowserWindow//SELECT[@id='quick-link:jump-menu']").select("Auto Quote");
br.<DomTextField>find("//BrowserWindow//INPUT[@id='autoquote:zipcode']").click(MouseButton.LEFT, new Point(60, 6));
br.<DomTextField>find("//BrowserWindow//INPUT[@id='autoquote:zipcode']").typeKeys("92121");
br.<DomTextField>find("//BrowserWindow//INPUT[@id='autoquote:e-mail']").click(MouseButton.LEFT, new Point(48, 10));
br.<DomTextField>find("//BrowserWindow//INPUT[@id='autoquote:e-mail']").typeKeys("test@test.com");
br.<DomRadioButton>find("//BrowserWindow//INPUT[@id='autoquote:vehicle:0']").select();
br.<DomButton>find("//BrowserWindow//INPUT[@id='autoquote:next']").click(MouseButton.LEFT, new Point(41, 8));
br.<DomTextField>find("//BrowserWindow//INPUT[@id='autoquote:age']").click(MouseButton.LEFT, new Point(36, 15));
br.<DomTextField>find("//BrowserWindow//INPUT[@id='autoquote:age']").typeKeys("<Backspace>42");
br.<DomRadioButton>find("//BrowserWindow//INPUT[@id='autoquote:gender:0']").select();
br.<DomRadioButton>find("//BrowserWindow//INPUT[@id='autoquote:type:1']").select();
br.<DomButton>find("//BrowserWindow//INPUT[@id='autoquote:next']").click(MouseButton.LEFT, new Point(32, 10));
br.<DomTextField>find("//BrowserWindow//INPUT[@id='autoquote:year']").click(MouseButton.LEFT, new Point(38, 17));
br.<DomTextField>find("//BrowserWindow//INPUT[@id='autoquote:year']").typeKeys("<Backspace>2010");
br.<DomElement>find("//BrowserWindow//IMG[@src='data:image/gif;base6*'][1]").click(MouseButton.LEFT, new Point(8, 17));
br.<DomElement>find("//BrowserWindow//DIV[@textContents='Lexus']").click(MouseButton.LEFT, new Point(26, 8));
br.<DomElement>find("//BrowserWindow//IMG[@src='data:image/gif;base6*'][2]").click(MouseButton.LEFT, new Point(10, 12));
br.<DomElement>find("//BrowserWindow//DIV[@textContents='RX400']").click(MouseButton.LEFT, new Point(27, 7));
br.<DomRadioButton>find("//BrowserWindow//INPUT[@id='autoquote:finInfo:1']").select();
br.<DomButton>find("//BrowserWindow//INPUT[@id='autoquote:next']").click(MouseButton.LEFT, new Point(22, 6));
DomElement usd127000 = br.<DomElement>find("//BrowserWindow//B[@textContents='USD 1.270,00']");
Assert.assertEquals("USD 1.270,00", usd127000.getText());
br.<DomButton>find("//BrowserWindow//INPUT[@id='quote-result:purchas*']").click(MouseButton.LEFT, new Point(39, 6));
br.<DomLink>find("//BrowserWindow//A[@textContents='Home'][1]").click(MouseButton.LEFT, new Point(60, 23));
}
}
免責事項
ここで紹介したスクリプトは説明のためのサンプルであり、製品の一部ではございません。スクリプトが実際に動作するか、御社業務に適合するかなどに関しまして、一切の保証はございません。
スクリプト、説明、その他すべてについて、無謬性は保障されません。
ここで紹介するスクリプトの一部、もしくは全部について、弊社に断りなく、御社スクリプトの内部に組み込み、そのままご利用頂いても構いません。
本スクリプトの一部もしくは全部を二次的著作物に対して引用する場合、著作権法の精神に基づき、適切な扱いを行ってください。