■ 構文:WebDriver / WebElement の使い方
http://codezine.jp/article/detail/7456?p=4
がとても参考になる
■ ブラウザの起動・終了
// ブラウザの起動 // Firefox WebDriver driver = new FirefoxDriver(); // Chrome File fileForChrome = new File("C:/workspace/SampleJavaCodes/selenium-2.45.0/chromedriver.exe"); System.setProperty(ChromeDriverService.CHROME_DRIVER_EXE_PROPERTY, fileForChrome.getAbsolutePath()); WebDriver driverForChrome = new ChromeDriver(); // IE File fileForIE = new File("C:/workspace/SampleJavaCodes/selenium-2.45.0/IEDriverServer.exe"); System.setProperty(InternetExplorerDriverService.IE_DRIVER_EXE_PROPERTY, fileForIE.getAbsolutePath()); WebDriver driverForIE = new InternetExplorerDriver(); // ブラウザの終了 driver.quit(); driverForChrome.quit(); driverForIE.quit();
■ ページ情報を取得
// ページのタイトル String title = driver.getTitle(); // ページのURL String url = driver.getCurrentUrl()
■ URLを指定してページを開く
driver.get("https://www.yahoo.co.jp/");
■ 要素を取得する
// id属性で指定 WebElement elementById = driver.findElement (By.id("buttonID")); // name属性で指定 WebElement elementByName = driver.findElement(By.name("textboxName")); // リンクテキストで指定 WebElement elementByLinkText = driver.findElement(By.linkText("Go to Home")); // CSSセレクタで指定 WebElement elementByCssSelector = driver.findElement(By.cssSelector("#header css")); // XPathで指定 WebElement elementByXpath = driver.findElement(By.xpath("//body"));
* 以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2021/02/27/000000
■ クリックする
elementByLinkText.click();
■ 文字を入力する / クリアする
// 文字を入力する elementByName.sendKeys("Input Data"); // クリアする elementByName.clear();
■ 値を検証する
String actual = elementByCssSelector.getText();
assertEquals("Expected Text", actual);
■ 要素を読み込むまで待機する処理
protected void waitForElementToLoad(final By locator, int timeOutInSeconds) { new WebDriverWait(driver, timeOutInSeconds).until(new ExpectedCondition<Boolean>() { public Boolean apply(WebDriver driver) { return driver.findElement(locator).isDisplayed(); } }); }
一口メモ
* テスト用のAbstarctを設けて共通した処理を纏めておいた方がいい + 特にJUnitの「@Before setUp()」「@After tearDown()」で初期化・後処理を纏めておくといいかも
参考文献
公式サイトのサンプル
http://www.seleniumhq.org/docs/03_webdriver.jsp#introducing-the-selenium-webdriver-api-by-example
初めに読むといいかも
http://codezine.jp/article/detail/7456?p=4
その他のサンプル
http://qiita.com/yacchin1205/items/e742519e2df32c006679
http://www.ibm.com/developerworks/jp/web/library/wa-selenium2/
http://itref.fc2web.com/selenium/
http://d.hatena.ne.jp/suzukij/20110828/1314549996
http://www.atmarkit.co.jp/ait/articles/1211/07/news009_2.html
http://yamashiro0110.hatenadiary.jp/entry/2014/05/11/172948
http://d.hatena.ne.jp/i_matsui/20130814/1376449964
http://www.atmarkit.co.jp/ait/articles/1210/05/news104_2.html
関連記事
Selenium ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2015/04/11/235336
Selenium WebDriver + Java ~ 初期設定編 ~
https://dk521123.hatenablog.com/entry/2015/05/12/230924
セレクタ
https://dk521123.hatenablog.com/entry/2021/02/27/000000