diff --git a/core/modules/simpletest/src/WebTestBase.php b/core/modules/simpletest/src/WebTestBase.php
index 3d58756c4a4c52f42b18281ebd69179b11fc3811..63cf76a9e67e58edf98e238f224988a1c8b3e211 100644
--- a/core/modules/simpletest/src/WebTestBase.php
+++ b/core/modules/simpletest/src/WebTestBase.php
@@ -1899,8 +1899,12 @@ protected function drupalProcessAjaxResponse($content, array $ajax_response, arr
           if ($wrapperNode) {
             // ajax.js adds an enclosing DIV to work around a Safari bug.
             $newDom = new \DOMDocument();
+            // DOM can load HTML soup. But, HTML soup can throw warnings,
+            // suppress them.
             @$newDom->loadHTML('<div>' . $command['data'] . '</div>');
-            $newNode = $dom->importNode($newDom->documentElement->firstChild->firstChild, TRUE);
+            // Suppress warnings thrown when duplicate HTML IDs are encountered.
+            // This probably means we are replacing an element with the same ID.
+            $newNode = @$dom->importNode($newDom->documentElement->firstChild->firstChild, TRUE);
             $method = isset($command['method']) ? $command['method'] : $ajax_settings['method'];
             // The "method" is a jQuery DOM manipulation function. Emulate
             // each one using PHP's DOMNode API.