diff -u b/core/modules/system/tests/modules/js_webassert_test/js/js_webassert_test.js b/core/modules/system/tests/modules/js_webassert_test/js/js_webassert_test.js --- b/core/modules/system/tests/modules/js_webassert_test/js/js_webassert_test.js +++ b/core/modules/system/tests/modules/js_webassert_test/js/js_webassert_test.js @@ -1,6 +1,6 @@ /** * @file - * Attaches the behaviors for the Field UI module. + * Testing behavior for JSWebAssertTest. */ (function ($, Drupal, drupalSettings) { @@ -11,7 +11,7 @@ * @type {Drupal~behavior} * * @prop {Drupal~behaviorAttach} attach - * Adds behaviors to the field storage add form. + * Makes changes in the DOM to be able to test the completion of AJAX in assertWaitOnAjaxRequest. */ Drupal.behaviors.js_webassert_test = { attach: function (context) { reverted: --- b/core/tests/Drupal/FunctionalJavascriptTests/EntityReference/EntityReferenceAutocompleteWidgetTest.php +++ a/core/tests/Drupal/FunctionalJavascriptTests/EntityReference/EntityReferenceAutocompleteWidgetTest.php @@ -42,23 +42,6 @@ } /** - * Waits for the jQuery autocomplete popup. - */ - protected function waitOnAutocomplete($field_name) { - $autocomplete_field_name = "[name='" . $field_name . "[0][target_id]']"; - $autocomplete_field_popup = 'jQuery(jQuery("' . $autocomplete_field_name . '").data("ui-autocomplete").menu.element).is(":visible")'; - $this->assertJsCondition($autocomplete_field_popup); - } - - /** - * Assert for the jQuery autocomplete result count. - */ - protected function assertResultCount($count, $field_name) { - $autocomplete_field_name = "[name='" . $field_name . "[0][target_id]']"; - $autocomplete_field_popup = 'jQuery(jQuery("' . $autocomplete_field_name . '").data("ui-autocomplete").menu.element).find("li").length === ' . $count; - $this->assertJsCondition($autocomplete_field_popup); - } - /** * Tests that the default autocomplete widget return the correct results. */ public function testEntityReferenceAutocompleteWidget() { @@ -83,11 +66,11 @@ $autocomplete_field = $page->findField($field_name . '[0][target_id]'); $autocomplete_field->setValue('Test'); $this->getSession()->getDriver()->keyDown($autocomplete_field->getXpath(), ' '); + $assert_session->waitOnAutocomplete(); + $results = $page->findAll('css', '.ui-autocomplete li'); - // Assert Autocomplete Popup is shown. - $this->waitOnAutocomplete($field_name); + $this->assertCount(2, $results); - $this->assertResultCount(2, $field_name); $assert_session->pageTextContains('Test page'); $assert_session->pageTextContains('Page test'); @@ -107,11 +90,11 @@ $autocomplete_field = $page->findField($field_name . '[0][target_id]'); $autocomplete_field->setValue('Test'); $this->getSession()->getDriver()->keyDown($autocomplete_field->getXpath(), ' '); + $assert_session->waitOnAutocomplete(); + $results = $page->findAll('css', '.ui-autocomplete li'); - // Assert Autocomplete Popup is shown. - $this->waitOnAutocomplete($field_name); + $this->assertCount(1, $results); - $this->assertResultCount(1, $field_name); $assert_session->pageTextContains('Test page'); $assert_session->pageTextNotContains('Page test'); } diff -u b/core/tests/Drupal/FunctionalJavascriptTests/JSWebAssert.php b/core/tests/Drupal/FunctionalJavascriptTests/JSWebAssert.php --- b/core/tests/Drupal/FunctionalJavascriptTests/JSWebAssert.php +++ b/core/tests/Drupal/FunctionalJavascriptTests/JSWebAssert.php @@ -145,13 +145,10 @@ * Waits for the jQuery autocomplete delay duration. * * @see https://api.jqueryui.com/autocomplete/#option-delay - * - * @deprecated in Drupal 8.3.x, will be removed before Drupal 9.0.0. */ public function waitOnAutocomplete() { // Wait for the autocomplete to be visible. - $condition = "(jQuery('.ui-autocomplete:visible li').length > 0)"; - return $this->session->wait(10000, $condition); + return $this->waitForElement('css', '.ui-autocomplete li'); } /**