LoginSignup
3
4

More than 5 years have passed since last update.

protractorでAzure AD ログインしてみる

Posted at

protractor 実行下でAzure AD(以下、AAD)にログインしてみた。
※AADログイン画面へのURL生成手順等は割愛。

自アプリから画面遷移してAADでログインする際、
browser.driver.sleepを使用してProtractorのコード実行タイミングを調整。

test.spec.js
'use strict';

describe('My App', function() {

  // 認証情報
  var EMAIL = "test@test.onmicrosoft.com";
  var PASSWORD = "Abc1234567";

  // AngularJSを使用していないページでのテストを許可
  browser.ignoreSynchronization = true;

  // AADログイン画面へのURLなどを指定、遷移するページ
  var LOGIN_URL = "http://localhost:****/login";

  it('Azure Login', function() {

    // ログイン画面に遷移
    browser.get(LOGIN_URL);

    // 自アプリからAADログイン画面への遷移が完了するまで待機
    browser.sleep(10000);

    // メールアドレスを設定
    browser.findElement(By.id("cred_userid_inputtext")).sendKeys(EMAIL)

    // パスワードを設定
    browser.findElement(By.id("cred_password_inputtext")).sendKeys(PASSWORD);

    // Input入力直後に発生する Loading を待機
    browser.sleep(2000);

    // サインイン 実行
    browser.findElement(By.id("cred_sign_in_button")).click();

    // 自アプリのメインページ遷移完了までスリープ
    browser.sleep(10000);

    expect(element(by.id("loginuser")).getText()).toEqual("user name");

  });
});

protractor 1.7.0

フォーム入力時に発生する Loading の最中は、サインインボタンがクリック無効になるっぽいのでsleepで回避した。
AngularJSを使用しないページで画面遷移やAjaxを待機するのに、sleepを使わない方法もあるみたい。
参考:
- Protractor の Angular 同期と Angular アプリでないページのテストについて

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4