web-dev-qa-db-ja.com

Behatテストが失敗し、@ javascriptを使用してユーザー名フィールドを見つけることができません

@javascriptを追加するとすぐにBehatテストが失敗します

エラー:

Form field with id|name|label|value|placeholder "Username" not found.

@javascriptを削除すると、エラーなしでテストに合格します。

Given I am logged in as a user with the Administrator role

Drupal 8をテストするには、image_fieldが必要です@javascript

Behat.yml:

default:
  autoload:
    '': '%paths.base%/tests/behat/bootstrap'
  suites:
    default:
      paths:
        - '%paths.base%/tests/behat/default'
      contexts:
        - Drupal\DrupalExtension\Context\DrupalContext
        - Drupal\DrupalExtension\Context\DrushContext
        - Drupal\DrupalExtension\Context\MessageContext
        - Drupal\DrupalExtension\Context\MinkContext
        - MyServices\EntityContext
        - FailureContext
        - MyServices\LinkContext
        - My\MenuContext
  extensions:
    Bex\Behat\ScreenshotExtension:
      image_drivers:
        local:
          screenshot_directory: /[SHARED_FOLDER]/screenshots
    Behat\MinkExtension:
      goutte: ~
      base_url: "http://dev.mysite.com"
      files_path: '%paths.base%/tests/behat/files/'
      javascript_session: Selenium2
      browser_name: chrome
      Selenium2:
        wd_Host: "http://localhost:4444/wd/hub"
        capabilities:
          # required by mink-extension 2.3
          marionette: null
          browserName: chrome
          browser: chrome
          version: 63
    Drupal\DrupalExtension:
      blackbox: ~
      api_driver: 'drupal'
      drupal:
        drupal_root: '%paths.base%/public'
      text:
        username_field: "Username"
        password_field: "Password"
        log_in: "Log in"
        log_out: "Log out"
      selectors:
        message_selector: '.messages'
        error_message_selector: '.messages--error'
        success_message_selector: '.messages--status'
        warning_message_selector: '.messages--warning'
        logged_in_selector: '.user-logged-in'
        login_form_selector: '#user-login-form'
      region_map:
        comments: '.comments'
        "main navigation": '#block-my-theme-main-navigation'
        "local tasks": '.block--local-tasks-block'
        "main content": '.block--system-main-block'
        "highlights": '.c-highlights__list'

ci:
  extensions:
    Bex\Behat\ScreenshotExtension:
      image_drivers:
        local:
          screenshot_directory: /tmp/artifacts/screenshots
    Behat\MinkExtension:
      base_url: http://localhost
2
meez

私はあなたがどちらかだと思う:

  1. 英語以外のサイトに対するテスト。
  2. BigPipeを有効にする。
  3. そのシナリオに@apiのタグを付けるのに失敗しました。
  4. 誤って構成されたセレン。

解決するには1.次のように、英語以外の文字列をbehat.ymlに挿入する必要があります。

Drupal\DrupalExtension:
  text:
    log_out: "Sign out"
    log_in: "Sign in"
    password_field: "Enter your password"
    username_field: "Username"

@ドキュメントを参照 テキスト文字列を上書きする


BigPipeが望ましくない方法でマークアップを変更したときに発生する可能性のある2.を解決するには、パッチを https://github.com/jhedstrom/drupalextension/pull/325.patch で試すことができます。

@プルリクエストを参照 大きなパイプの互換性のフォローアップ


解決するには3.シナリオに@apiタグを追加するだけです。


4.を解決するには、wd_Hosthttp://dev.mysite.com:4444/wd/hubであるため、base_urlhttp://dev.mysite.comにポイントする必要があります。

wd_Host: "http://dev.mysite.com:4444/wd/hub"
2
leymannx