Change record status: 
Project: 
Introduced in branch: 
8.2.x
Introduced in version: 
8.2.6
Description: 

New methods have been added to Drupal\FunctionalJavascriptTests\JSWebAssert to facilitate testing javascript driven events that added new elements to the page. There are:

  • ::waitForElement()
  • ::waitForElementVisible()
  • ::waitForButton()
  • ::waitForLink()
  • ::waitForField()
  • ::waitForId()

Additionally we discourage the use of:

  • ::assertWaitOnAjaxRequest()
  • ::waitOnAutocomplete()

Example usage in a JavascriptTestBase test:

    $assert_session = $this->assertSession();

    // Do something that makes an element visible.
    $result = $assert_session->waitForElementVisible('named', array('button', 'Added WaitForElementVisible'));
    $this->assertNotEmpty($result);

    // Do something that adds a button.
    $result = $assert_session->waitForButton('Added button');
    $this->assertNotEmpty($result);

    // Do something that adds a link
    $result = $assert_session->waitForLink('Added link');
    $this->assertNotEmpty($result);

    // Do something that adds a field.
    $result = $assert_session->waitForField('added_field');
    $this->assertNotEmpty($result);

    // Do something that adds an HTML element with a particular ID.
    $result = $assert_session->waitForId('js_webassert_test_field_id');
    $this->assertNotEmpty($result);
Impacts: 
Module developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other: 
Other updates done