1

Codeception (webdriver/selenium を使用した受け入れテスト) を使用してアプリケーションをテストしようとしていますが、アクションを実行した後にリンクの値を取得できるようにしたいと考えています。

基本的に、システムからログアウトしてからリンクをクリックしたいので、ログアウトアクション後に使用するために URL を変数に保存する必要があります。

これは、次のような CMS 操作のようなものです。

  1. 管理者としてログイン
  2. コンテンツを作成する
  3. 作成されたコンテンツとユーザーに表示されるリンク

できるようになりたい

  1. リンクの href 値を取得します
  2. ログアウト
  3. URL に移動し、特定のページ コンテンツを確認します。
4

1 に答える 1

2

Codeception ではリンクの href を取得するメソッドが特殊すぎるためありませんが、Mink API を使用して WebHelper クラスで独自のアクションを定義し、href を取得することができます。モジュールとヘルパーの詳細をお読みください。

リンクの href を取得するアクションの例を次に示します。

public function grabHref($locator)
{
    $webDriver = $this->getModule('Selenium2');

    $link = $webDriver->session->getPage()->findLink($locator);
    if ($link) {
        return $link->getAttribute('href');
    }

    $this->fail("Link '{$locator}' not found");           
}

この関数を _helpers/WebHelper.php ファイルに配置し、テスト スーツの構成で WebHelper モジュールを有効にします。

class_name: WebGuy
    modules:
        enabled: [Selenium2, WebHelper] 

次に、実行codecept buildして WebGuy クラスを再構築します。

これで、cept/Cest ファイルでgrabHref アクションを使用できます。

$I = new WebGuy($scenario);
$I->wantTo('Grab Href');

$I->amOnPage('/');

$href = $I->grabHref('Link text or ID or Title');
于 2014-03-31T18:11:23.840 に答える