diff --git a/core/modules/search/tests/src/Functional/SearchBlockTest.php b/core/modules/search/tests/src/Functional/SearchBlockTest.php
index 7cf659ba49487e3ed0b0e052a87da6597b934a01..884751e805440c758f0d2e4b3feed60072329ded 100644
--- a/core/modules/search/tests/src/Functional/SearchBlockTest.php
+++ b/core/modules/search/tests/src/Functional/SearchBlockTest.php
@@ -20,7 +20,7 @@ class SearchBlockTest extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  protected $defaultTheme = 'classy';
+  protected $defaultTheme = 'stark';
 
   /**
    * The administrative user.
@@ -53,7 +53,7 @@ public function testSearchFormBlock() {
     // Test availability of the search block in the admin "Place blocks" list.
     $this->drupalGet('admin/structure/block');
     $this->getSession()->getPage()->findLink('Place block')->click();
-    $this->assertSession()->linkByHrefExists('/admin/structure/block/add/search_form_block/classy', 0,
+    $this->assertSession()->linkByHrefExists('/admin/structure/block/add/search_form_block/stark', 0,
       'Did not find the search block in block candidate list.');
 
     $block = $this->drupalPlaceBlock('search_form_block');
@@ -104,7 +104,7 @@ public function testSearchFormBlock() {
     $this->drupalGet('');
     $this->submitForm($terms, 'Search');
     $this->assertSession()->statusCodeEquals(200);
-    $this->assertSession()->pageTextContains('Please enter some keywords');
+    $this->assertSession()->statusMessageContains('Please enter some keywords', 'error');
 
     // Confirm that the user is redirected to the search page, when form is
     // submitted empty.
@@ -118,17 +118,17 @@ public function testSearchFormBlock() {
     // search again with a longer keyword. First test using the block form.
     $this->drupalGet('node');
     $this->submitForm(['keys' => $this->randomMachineName(1)], 'Search');
-    $this->assertSession()->pageTextContains('You must include at least one keyword to match in the content');
-    $this->assertSession()->pageTextNotContains('Please enter some keywords');
+    $this->assertSession()->statusMessageContains('You must include at least one keyword to match in the content', 'warning');
+    $this->assertSession()->statusMessageNotContains('Please enter some keywords');
     $this->submitForm(['keys' => $this->randomMachineName()], 'Search', 'search-block-form');
-    $this->assertSession()->pageTextNotContains('You must include at least one keyword to match in the content');
+    $this->assertSession()->statusMessageNotContains('You must include at least one keyword to match in the content');
 
     // Same test again, using the search page form for the second search this
     // time.
     $this->drupalGet('node');
     $this->submitForm(['keys' => $this->randomMachineName(1)], 'Search');
     $this->submitForm(['keys' => $this->randomMachineName()], 'Search', 'search-form');
-    $this->assertSession()->pageTextNotContains('You must include at least one keyword to match in the content');
+    $this->assertSession()->statusMessageNotContains('You must include at least one keyword to match in the content');
 
     // Edit the block configuration so that it searches users instead of nodes,
     // and test.
diff --git a/core/modules/search/tests/src/Functional/SearchConfigSettingsFormTest.php b/core/modules/search/tests/src/Functional/SearchConfigSettingsFormTest.php
index a5d4a7f71c68d768846d07439252889db31ae6db..3ace4e846f81b7acdd8bb42d8c821467e2907934 100644
--- a/core/modules/search/tests/src/Functional/SearchConfigSettingsFormTest.php
+++ b/core/modules/search/tests/src/Functional/SearchConfigSettingsFormTest.php
@@ -29,7 +29,7 @@ class SearchConfigSettingsFormTest extends BrowserTestBase {
   /**
    * {@inheritdoc}
    */
-  protected $defaultTheme = 'classy';
+  protected $defaultTheme = 'stark';
 
   /**
    * User who can search and administer search.
@@ -77,7 +77,7 @@ protected function setUp(): void {
 
     // Enable the search block.
     $this->drupalPlaceBlock('search_form_block');
-    $this->drupalPlaceBlock('local_tasks_block');
+    $this->drupalPlaceBlock('local_tasks_block', ['id' => 'local_tasks']);
     $this->drupalPlaceBlock('page_title_block');
   }
 
@@ -96,14 +96,14 @@ public function testSearchSettingsPage() {
     $this->assertSession()->pageTextContains('Are you sure you want to re-index the site');
     $this->drupalGet('admin/config/search/pages/reindex');
     $this->submitForm([], 'Re-index site');
-    $this->assertSession()->pageTextContains('All search indexes will be rebuilt');
+    $this->assertSession()->statusMessageContains('All search indexes will be rebuilt', 'status');
     $this->drupalGet('admin/config/search/pages');
     $this->assertSession()->pageTextContains('There is 1 item left to index.');
 
     // Test that the form saves with the default values.
     $this->drupalGet('admin/config/search/pages');
     $this->submitForm([], 'Save configuration');
-    $this->assertSession()->pageTextContains('The configuration options have been saved.');
+    $this->assertSession()->statusMessageContains('The configuration options have been saved.', 'status');
 
     // Test that the form does not save with an invalid word length.
     $edit = [
@@ -111,7 +111,8 @@ public function testSearchSettingsPage() {
     ];
     $this->drupalGet('admin/config/search/pages');
     $this->submitForm($edit, 'Save configuration');
-    $this->assertSession()->pageTextNotContains('The configuration options have been saved.');
+    $this->assertSession()->statusMessageNotContains('The configuration options have been saved.');
+    $this->assertSession()->statusMessageContains('Minimum word length to index must be a number.', 'error');
 
     // Test logging setting. It should be off by default.
     $text = $this->randomMachineName(5);
@@ -149,7 +150,7 @@ public function testSearchModuleSettingsPage() {
     $this->submitForm($edit, 'Save search page');
 
     // Ensure that the modifications took effect.
-    $this->assertSession()->pageTextContains("The Dummy search type search page has been updated.");
+    $this->assertSession()->statusMessageContains("The Dummy search type search page has been updated.", 'status');
     $this->drupalGet('admin/config/search/pages/manage/dummy_search_type');
     $this->assertTrue($this->assertSession()->optionExists('edit-extra-type-settings-boost', 'ii')->isSelected());
   }
@@ -197,7 +198,7 @@ public function testSearchModuleDisabling() {
       foreach ($plugins as $other) {
         if ($other != $entity_id) {
           $path = 'search/' . $entities[$other]->getPath();
-          $this->assertSession()->elementNotExists('xpath', '//ul[@class="tabs primary"]/li/a[@data-drupal-link-system-path="' . $path . '"]');
+          $this->assertSession()->elementNotExists('xpath', '//div[@id="block-local-tasks"]//li/a[@data-drupal-link-system-path="' . $path . '"]');
         }
       }
 
@@ -238,7 +239,7 @@ public function testSearchModuleDisabling() {
       foreach ($plugins as $entity_id) {
         $path = 'search/' . $entities[$entity_id]->getPath();
         $label = $entities[$entity_id]->label();
-        $this->assertSession()->elementTextContains('xpath', '//ul[@class="tabs primary"]/li/a[@data-drupal-link-system-path="' . $path . '"]', $label);
+        $this->assertSession()->elementTextContains('xpath', '//div[@id="block-local-tasks"]//li/a[@data-drupal-link-system-path="' . $path . '"]', $label);
       }
     }
   }
@@ -248,7 +249,7 @@ public function testSearchModuleDisabling() {
    */
   public function testDefaultSearchPageOrdering() {
     $this->drupalGet('search');
-    $elements = $this->xpath('//*[contains(@class, :class)]//a', [':class' => 'tabs primary']);
+    $elements = $this->xpath('//div[@id="block-local-tasks"]//a');
     $this->assertSame(Url::fromRoute('search.view_node_search')->toString(), $elements[0]->getAttribute('href'));
     $this->assertSame(Url::fromRoute('search.view_dummy_search_type')->toString(), $elements[1]->getAttribute('href'));
     $this->assertSame(Url::fromRoute('search.view_user_search')->toString(), $elements[2]->getAttribute('href'));
@@ -280,7 +281,7 @@ public function testMultipleSearchPages() {
     $first['path'] = strtolower($this->randomMachineName(8));
     $this->submitForm($first, 'Save');
     $this->assertDefaultSearch($first_id, 'The default page matches the only search page.');
-    $this->assertSession()->pageTextContains("The {$first['label']} search page has been added.");
+    $this->assertSession()->statusMessageContains("The {$first['label']} search page has been added.", 'status');
 
     // Attempt to add a search page with an existing path.
     $edit = [];
@@ -291,7 +292,7 @@ public function testMultipleSearchPages() {
     $edit['id'] = strtolower($this->randomMachineName(8));
     $edit['path'] = $first['path'];
     $this->submitForm($edit, 'Save');
-    $this->assertSession()->pageTextContains('The search page path must be unique.');
+    $this->assertSession()->statusMessageContains('The search page path must be unique.', 'error');
 
     // Add a second search page.
     $second = [];
@@ -303,7 +304,7 @@ public function testMultipleSearchPages() {
 
     // Ensure both search pages have their tabs displayed.
     $this->drupalGet('search');
-    $elements = $this->xpath('//*[contains(@class, :class)]//a', [':class' => 'tabs primary']);
+    $elements = $this->xpath('//div[@id="block-local-tasks"]//a');
     $this->assertSame(Url::fromRoute('search.view_' . $first_id)->toString(), $elements[0]->getAttribute('href'));
     $this->assertSame(Url::fromRoute('search.view_' . $second_id)->toString(), $elements[1]->getAttribute('href'));
 
@@ -315,7 +316,7 @@ public function testMultipleSearchPages() {
     $this->drupalGet('admin/config/search/pages');
     $this->submitForm($edit, 'Save configuration');
     $this->drupalGet('search');
-    $elements = $this->xpath('//*[contains(@class, :class)]//a', [':class' => 'tabs primary']);
+    $elements = $this->xpath('//div[@id="block-local-tasks"]//a');
     $this->assertSame(Url::fromRoute('search.view_' . $second_id)->toString(), $elements[0]->getAttribute('href'));
     $this->assertSame(Url::fromRoute('search.view_' . $first_id)->toString(), $elements[1]->getAttribute('href'));
 
@@ -326,7 +327,7 @@ public function testMultipleSearchPages() {
 
     // Change the default search page.
     $this->clickLink('Set as default');
-    $this->assertSession()->pageTextContains("The default search page is now {$second['label']}. Be sure to check the ordering of your search pages.");
+    $this->assertSession()->statusMessageContains("The default search page is now {$second['label']}. Be sure to check the ordering of your search pages.", 'status');
     $this->verifySearchPageOperations($first_id, TRUE, TRUE, TRUE, FALSE);
     $this->verifySearchPageOperations($second_id, TRUE, FALSE, FALSE, FALSE);
 
@@ -347,7 +348,7 @@ public function testMultipleSearchPages() {
     $this->clickLink('Delete');
     $this->assertSession()->pageTextContains("Are you sure you want to delete the search page {$first['label']}?");
     $this->submitForm([], 'Delete');
-    $this->assertSession()->pageTextContains("The search page {$first['label']} has been deleted.");
+    $this->assertSession()->statusMessageContains("The search page {$first['label']} has been deleted.", 'status');
     $this->verifySearchPageOperations($first_id, FALSE, FALSE, FALSE, FALSE);
   }
 
diff --git a/core/modules/search/tests/src/Functional/SearchNodePunctuationTest.php b/core/modules/search/tests/src/Functional/SearchNodePunctuationTest.php
index 52a482744c69471904bbd8e8c944bfbcb539b118..f435dff14143b1589a1c4e1945c72321e2c257c7 100644
--- a/core/modules/search/tests/src/Functional/SearchNodePunctuationTest.php
+++ b/core/modules/search/tests/src/Functional/SearchNodePunctuationTest.php
@@ -73,13 +73,13 @@ public function testPhraseSearchPunctuation() {
     $this->drupalGet('search/node');
     $this->submitForm($edit, 'Search');
     $this->assertSession()->responseNotContains('<strong>&</strong>amp;');
-    $this->assertSession()->pageTextContains('You must include at least one keyword');
+    $this->assertSession()->statusMessageContains('You must include at least one keyword', 'warning');
 
     $edit = ['keys' => '&amp;'];
     $this->drupalGet('search/node');
     $this->submitForm($edit, 'Search');
     $this->assertSession()->responseNotContains('<strong>&</strong>amp;');
-    $this->assertSession()->pageTextContains('You must include at least one keyword');
+    $this->assertSession()->statusMessageContains('You must include at least one keyword', 'warning');
   }
 
 }
diff --git a/core/modules/search/tests/src/Functional/SearchPageTextTest.php b/core/modules/search/tests/src/Functional/SearchPageTextTest.php
index 4e4a64b14f9a1ec5633265018eab2bc287f08def..93c30114a6e7e217d39c5ac23b927df8e28c7862 100644
--- a/core/modules/search/tests/src/Functional/SearchPageTextTest.php
+++ b/core/modules/search/tests/src/Functional/SearchPageTextTest.php
@@ -135,16 +135,16 @@ public function testSearchText() {
     $edit['keys'] = implode(' ', $keys);
     $this->drupalGet('search/node');
     $this->submitForm($edit, 'Search');
-    $this->assertSession()->pageTextContains("Your search used too many AND/OR expressions. Only the first {$limit} terms were included in this search.");
+    $this->assertSession()->statusMessageContains("Your search used too many AND/OR expressions. Only the first {$limit} terms were included in this search.", 'warning');
 
     // Test that a search on Node or User with no keywords entered generates
     // the "Please enter some keywords" message.
     $this->drupalGet('search/node');
     $this->submitForm([], 'Search');
-    $this->assertSession()->pageTextContains('Please enter some keywords');
+    $this->assertSession()->statusMessageContains('Please enter some keywords', 'error');
     $this->drupalGet('search/user');
     $this->submitForm([], 'Search');
-    $this->assertSession()->pageTextContains('Please enter some keywords');
+    $this->assertSession()->statusMessageContains('Please enter some keywords', 'error');
 
     // Make sure the "Please enter some keywords" message is NOT displayed if
     // you use "or" words or phrases in Advanced Search.
@@ -152,22 +152,22 @@ public function testSearchText() {
     $this->submitForm([
       'or' => $this->randomMachineName() . ' ' . $this->randomMachineName(),
     ], 'edit-submit--2');
-    $this->assertSession()->pageTextNotContains('Please enter some keywords');
+    $this->assertSession()->statusMessageNotContains('Please enter some keywords');
     $this->drupalGet('search/node');
     $this->submitForm([
       'phrase' => '"' . $this->randomMachineName() . '" "' . $this->randomMachineName() . '"',
     ], 'edit-submit--2');
-    $this->assertSession()->pageTextNotContains('Please enter some keywords');
+    $this->assertSession()->statusMessageNotContains('Please enter some keywords');
 
     // Verify that if you search for a too-short keyword, you get the right
     // message, and that if after that you search for a longer keyword, you
     // do not still see the message.
     $this->drupalGet('search/node');
     $this->submitForm(['keys' => $this->randomMachineName(1)], 'Search');
-    $this->assertSession()->pageTextContains('You must include at least one keyword');
-    $this->assertSession()->pageTextNotContains('Please enter some keywords');
+    $this->assertSession()->statusMessageContains('You must include at least one keyword', 'warning');
+    $this->assertSession()->statusMessageNotContains('Please enter some keywords');
     $this->submitForm(['keys' => $this->randomMachineName()], 'Search');
-    $this->assertSession()->pageTextNotContains('You must include at least one keyword');
+    $this->assertSession()->statusMessageNotContains('You must include at least one keyword');
 
     // Test that if you search for a URL with .. in it, you still end up at
     // the search page. See issue https://www.drupal.org/node/890058.