diff --git a/modules/ajax_example/tests/src/Functional/AjaxExampleMenuTest.php b/modules/ajax_example/tests/src/Functional/AjaxExampleMenuTest.php
index 779e146..06dc7a9 100644
--- a/modules/ajax_example/tests/src/Functional/AjaxExampleMenuTest.php
+++ b/modules/ajax_example/tests/src/Functional/AjaxExampleMenuTest.php
@@ -78,7 +78,8 @@ class AjaxExampleMenuTest extends BrowserTestBase {
       $this->drupalGet($url);
       $assertion->statusCodeEquals(200);
       foreach ($buttons as $button) {
-        $this->drupalPostForm($url, [], $button);
+        $this->drupalGet($url);
+        $this->submitForm([], $button);
         $assertion->statusCodeEquals(200);
       }
     }
diff --git a/modules/ajax_example/tests/src/Functional/DependentDropdownTest.php b/modules/ajax_example/tests/src/Functional/DependentDropdownTest.php
index 94c3e3a..87d9d59 100644
--- a/modules/ajax_example/tests/src/Functional/DependentDropdownTest.php
+++ b/modules/ajax_example/tests/src/Functional/DependentDropdownTest.php
@@ -57,7 +57,8 @@ class DependentDropdownTest extends BrowserTestBase {
 
     foreach ($families as $family => $instruments) {
       // Post the form for the instrument family.
-      $this->drupalPostForm($dropdown_url, ['instrument_family_dropdown' => $family], 'Choose');
+      $this->drupalGet($dropdown_url);
+      $this->submitForm(['instrument_family_dropdown' => $family], 'Choose');
       // Get the instrument dropdown elements.
       $instrument_options = $page->findAll('css', '#edit-instrument-dropdown option');
       $this->assertCount(count($instruments), $instrument_options);
@@ -68,8 +69,9 @@ class DependentDropdownTest extends BrowserTestBase {
       // Post each instrument. We have to 'choose' again in order to unlock the
       // instrument dropdown.
       foreach ($instruments as $instrument) {
-        $this->drupalPostForm($dropdown_url, ['instrument_family_dropdown' => $family], 'Choose');
-        $this->drupalPostForm(NULL, ['instrument_dropdown' => $instrument], 'Submit');
+        $this->drupalGet($dropdown_url);
+        $this->submitForm(['instrument_family_dropdown' => $family], 'Choose');
+        $this->submitForm(['instrument_dropdown' => $instrument], 'Submit');
         $assert->pageTextContains("Your values have been submitted. Instrument family: $family, Instrument: $instrument");
       }
     }
diff --git a/modules/ajax_example/tests/src/Functional/DynamicFormSectionsTest.php b/modules/ajax_example/tests/src/Functional/DynamicFormSectionsTest.php
index 477011e..a06fece 100644
--- a/modules/ajax_example/tests/src/Functional/DynamicFormSectionsTest.php
+++ b/modules/ajax_example/tests/src/Functional/DynamicFormSectionsTest.php
@@ -46,7 +46,8 @@ class DynamicFormSectionsTest extends BrowserTestBase {
 
     // Go through the dropdown options. First outlier is 'Choose question style'
     // which should have an empty details section.
-    $this->drupalPostForm($dropdown_url, ['question_type_select' => 'Choose question style'], 'Choose');
+    $this->drupalGet($dropdown_url);
+    $this->submitForm(['question_type_select' => 'Choose question style'], 'Choose');
     $detail_children = $page->findAll('css', 'div.details-wrapper *');
     $this->assertEqual(count($detail_children), 0);
 
@@ -58,17 +59,19 @@ class DynamicFormSectionsTest extends BrowserTestBase {
     ];
     // These all add stuff to the details wrapper.
     foreach ($question_styles as $question_style) {
-      $this->drupalPostForm($dropdown_url, ['question_type_select' => $question_style], 'Choose');
+      $this->drupalGet($dropdown_url);
+      $this->submitForm(['question_type_select' => $question_style], 'Choose');
       $detail_children = $page->findAll('css', 'div.details-wrapper *');
       $this->assertNotEqual($this->count($detail_children), 0);
-      $this->drupalPostForm(NULL, ['question' => 'George Washington'], 'Submit your answer');
+      $this->submitForm(['question' => 'George Washington'], 'Submit your answer');
       $assert->pageTextContains('You got the right answer: George Washington');
     }
     // One wrong answer to exercise that code path.
-    $this->drupalPostForm($dropdown_url, ['question_type_select' => 'Multiple Choice'], 'Choose');
+    $this->drupalGet($dropdown_url);
+    $this->submitForm(['question_type_select' => 'Multiple Choice'], 'Choose');
     $detail_children = $page->findAll('css', 'div.details-wrapper *');
     $this->assertNotEqual($this->count($detail_children), 0);
-    $this->drupalPostForm(NULL, ['question' => 'Abraham Lincoln'], 'Submit your answer');
+    $this->submitForm(['question' => 'Abraham Lincoln'], 'Submit your answer');
     $assert->pageTextContains('Sorry, your answer (Abraham Lincoln) is wrong');
   }
 
diff --git a/modules/ajax_example/tests/src/FunctionalJavascript/AutotextfieldsTest.php b/modules/ajax_example/tests/src/FunctionalJavascript/AutotextfieldsTest.php
index 23cdcc8..7854624 100644
--- a/modules/ajax_example/tests/src/FunctionalJavascript/AutotextfieldsTest.php
+++ b/modules/ajax_example/tests/src/FunctionalJavascript/AutotextfieldsTest.php
@@ -42,7 +42,8 @@ class AutotextfieldsTest extends WebDriverTestBase {
     $assert->fieldNotExists('last_name');
     // Submit the form. This tests what happens when there are no user
     // interactions because drupalPostForm() reloads the form.
-    $this->drupalPostForm($form_url, [], 'Click Me');
+    $this->drupalGet($form_url);
+    $this->submitForm([], 'Click Me');
     $assert->pageTextContains('Submit handler: First name: n/a Last name: n/a');
 
     // Ask for the first name.
diff --git a/modules/ajax_example/tests/src/FunctionalJavascript/DependentDropdownTest.php b/modules/ajax_example/tests/src/FunctionalJavascript/DependentDropdownTest.php
index 2488b83..24a8d53 100644
--- a/modules/ajax_example/tests/src/FunctionalJavascript/DependentDropdownTest.php
+++ b/modules/ajax_example/tests/src/FunctionalJavascript/DependentDropdownTest.php
@@ -70,7 +70,7 @@ class DependentDropdownTest extends WebDriverTestBase {
         $this->drupalGet($dropdown_url);
         $family_dropdown->setValue($family);
         $assert->assertWaitOnAjaxRequest();
-        $this->drupalPostForm(NULL, ['instrument_dropdown' => $instrument], 'Submit');
+        $this->submitForm(['instrument_dropdown' => $instrument], 'Submit');
         $assert->pageTextContains("Your values have been submitted. Instrument family: $family, Instrument: $instrument");
       }
     }
diff --git a/modules/ajax_example/tests/src/FunctionalJavascript/DynamicFormSectionsTest.php b/modules/ajax_example/tests/src/FunctionalJavascript/DynamicFormSectionsTest.php
index 64161b3..3c823e1 100644
--- a/modules/ajax_example/tests/src/FunctionalJavascript/DynamicFormSectionsTest.php
+++ b/modules/ajax_example/tests/src/FunctionalJavascript/DynamicFormSectionsTest.php
@@ -64,7 +64,7 @@ class DynamicFormSectionsTest extends WebDriverTestBase {
       $this->drupalGet($dropdown_url);
       $question_type_dropdown->setValue($question_style);
       $assert->assertWaitOnAjaxRequest();
-      $this->drupalPostForm(NULL, ['question' => 'George Washington'], 'Submit your answer');
+      $this->submitForm(['question' => 'George Washington'], 'Submit your answer');
       $assert->pageTextContains('You got the right answer: George Washington');
     }
   }
diff --git a/modules/batch_example/tests/src/Functional/BatchExampleWebTest.php b/modules/batch_example/tests/src/Functional/BatchExampleWebTest.php
index c27331b..0a79a43 100644
--- a/modules/batch_example/tests/src/Functional/BatchExampleWebTest.php
+++ b/modules/batch_example/tests/src/Functional/BatchExampleWebTest.php
@@ -32,12 +32,14 @@ class BatchExampleWebTest extends BrowserTestBase {
     $this->drupalLogin($web_user);
 
     // Launch Batch 1.
-    $this->drupalPostForm('examples/batch_example', ['batch' => 'batch_1'], 'Go');
+    $this->drupalGet('examples/batch_example');
+    $this->submitForm(['batch' => 'batch_1'], 'Go');
     // Check that 1000 operations were performed.
     $this->assertText('1000 results processed');
 
     // Launch Batch 2.
-    $this->drupalPostForm('examples/batch_example', ['batch' => 'batch_2'], 'Go');
+    $this->drupalGet('examples/batch_example');
+    $this->submitForm(['batch' => 'batch_2'], 'Go');
     // Check that 600 operations were performed.
     $this->assertText('600 results processed');
   }
diff --git a/modules/block_example/tests/src/Functional/BlockExampleTest.php b/modules/block_example/tests/src/Functional/BlockExampleTest.php
index b8250d5..ee51662 100644
--- a/modules/block_example/tests/src/Functional/BlockExampleTest.php
+++ b/modules/block_example/tests/src/Functional/BlockExampleTest.php
@@ -79,7 +79,8 @@ class BlockExampleTest extends BrowserTestBase {
     $edit = [
       'settings[block_example_string_text]' => $this->randomMachineName(),
     ];
-    $this->drupalPostForm('/admin/structure/block/manage/' . $settings_configurable['id'], $edit, 'Save block');
+    $this->drupalGet('/admin/structure/block/manage/' . $settings_configurable['id']);
+    $this->submitForm($edit, 'Save block');
     $assert->statusCodeEquals(200);
 
     // Verify that new content is shown.
diff --git a/modules/cache_example/tests/src/Functional/CacheExampleTest.php b/modules/cache_example/tests/src/Functional/CacheExampleTest.php
index 924e7bb..54fb964 100644
--- a/modules/cache_example/tests/src/Functional/CacheExampleTest.php
+++ b/modules/cache_example/tests/src/Functional/CacheExampleTest.php
@@ -81,33 +81,40 @@ class CacheExampleTest extends BrowserTestBase {
     $assert->pageTextContains('Source: cached');
 
     // Now push the button to remove the count.
-    $this->drupalPostForm('examples/cache-example', [], 'Explicitly remove cached file count');
+    $this->drupalGet('examples/cache-example');
+    $this->submitForm([], 'Explicitly remove cached file count');
     $assert->pageTextContains('Source: actual file search');
 
     // Create a cached item. First make sure it doesn't already exist.
     $assert->pageTextContains('Cache item does not exist');
-    $this->drupalPostForm('examples/cache-example', ['expiration' => -10], 'Create a cache item with this expiration');
+    $this->drupalGet('examples/cache-example');
+    $this->submitForm(['expiration' => -10], 'Create a cache item with this expiration');
     // We should now have an already-expired item. Automatically invalid.
     $assert->pageTextContains('Cache_item is invalid');
     // Now do the expiration operation.
-    $this->drupalPostForm('examples/cache-example', ['cache_clear_type' => 'expire'], 'Clear or expire cache');
+    $this->drupalGet('examples/cache-example');
+    $this->submitForm(['cache_clear_type' => 'expire'], 'Clear or expire cache');
     // And verify that it was removed.
     $assert->pageTextContains('Cache item does not exist');
 
     // Create a cached item. This time we'll make it not expire.
-    $this->drupalPostForm('examples/cache-example', ['expiration' => 'never_remove'], 'Create a cache item with this expiration');
+    $this->drupalGet('examples/cache-example');
+    $this->submitForm(['expiration' => 'never_remove'], 'Create a cache item with this expiration');
     // We should now have an never-remove item.
     $assert->pageTextContains('Cache item exists and is set to expire at Never expires');
     // Now do the expiration operation.
-    $this->drupalPostForm('examples/cache-example', ['cache_clear_type' => 'expire'], 'Clear or expire cache');
+    $this->drupalGet('examples/cache-example');
+    $this->submitForm(['cache_clear_type' => 'expire'], 'Clear or expire cache');
     // And verify that it was not removed.
     $assert->pageTextContains('Cache item exists and is set to expire at Never expires');
     // Now do tag invalidation.
-    $this->drupalPostForm('examples/cache-example', ['cache_clear_type' => 'remove_tag'], 'Clear or expire cache');
+    $this->drupalGet('examples/cache-example');
+    $this->submitForm(['cache_clear_type' => 'remove_tag'], 'Clear or expire cache');
     // And verify that it was invalidated.
     $assert->pageTextContains('Cache_item is invalid');
     // Do the hard delete.
-    $this->drupalPostForm('examples/cache-example', ['cache_clear_type' => 'remove_all'], 'Clear or expire cache');
+    $this->drupalGet('examples/cache-example');
+    $this->submitForm(['cache_clear_type' => 'remove_all'], 'Clear or expire cache');
     // And verify that it was removed.
     $assert->pageTextContains('Cache item does not exist');
   }
diff --git a/modules/config_entity_example/tests/src/Functional/ConfigEntityExampleTest.php b/modules/config_entity_example/tests/src/Functional/ConfigEntityExampleTest.php
index f94b560..137f640 100644
--- a/modules/config_entity_example/tests/src/Functional/ConfigEntityExampleTest.php
+++ b/modules/config_entity_example/tests/src/Functional/ConfigEntityExampleTest.php
@@ -105,15 +105,7 @@ class ConfigEntityExampleTest extends BrowserTestBase {
     $this->drupalGet('/examples/config-entity-example');
     $this->clickLink('Add robot');
     $robot_machine_name = 'roboname';
-    $this->drupalPostForm(
-      NULL,
-      [
-        'label' => $robot_machine_name,
-        'id' => $robot_machine_name,
-        'floopy' => TRUE,
-      ],
-      'Create Robot'
-    );
+    $this->submitForm(['label' => $robot_machine_name, 'id' => $robot_machine_name, 'floopy' => TRUE], 'Create Robot');
 
     // 4) Verify that our robot appears when we edit it.
     $this->drupalGet('/examples/config-entity-example/manage/' . $robot_machine_name);
@@ -125,30 +117,15 @@ class ConfigEntityExampleTest extends BrowserTestBase {
     $this->clickLink('Add robot');
     $robby_machine_name = 'robby_machine_name';
     $robby_label = 'Robby label';
-    $this->drupalPostForm(
-      NULL,
-      [
-        'label' => $robby_label,
-        'id' => $robby_machine_name,
-        'floopy' => TRUE,
-      ],
-      'Create Robot'
-    );
+    $this->submitForm(['label' => $robby_label, 'id' => $robby_machine_name, 'floopy' => TRUE], 'Create Robot');
     $this->drupalGet('/examples/config-entity-example');
     $assert->pageTextContains($robby_label);
     $assert->pageTextContains($robby_machine_name);
 
     // Try to re-submit the same robot, and verify that we see an error message
     // and not a PHP error.
-    $this->drupalPostForm(
-      Url::fromRoute('entity.robot.add_form'),
-      [
-        'label' => $robby_label,
-        'id' => $robby_machine_name,
-        'floopy' => TRUE,
-      ],
-      'Create Robot'
-    );
+    $this->drupalGet(Url::fromRoute('entity.robot.add_form'));
+    $this->submitForm(['label' => $robby_label, 'id' => $robby_machine_name, 'floopy' => TRUE], 'Create Robot');
     $assert->pageTextContains('The machine-readable name is already in use.');
 
     // 6) Verify that required links are present on respective paths.
@@ -177,15 +154,8 @@ class ConfigEntityExampleTest extends BrowserTestBase {
 
     // Try to submit a robot with a machine name of 'custom'. This is a reserved
     // keyword we've disallowed in the form.
-    $this->drupalPostForm(
-      Url::fromRoute('entity.robot.add_form'),
-      [
-        'label' => 'Custom',
-        'id' => 'custom',
-        'floopy' => TRUE,
-      ],
-      'Create Robot'
-    );
+    $this->drupalGet(Url::fromRoute('entity.robot.add_form'));
+    $this->submitForm(['label' => 'Custom', 'id' => 'custom', 'floopy' => TRUE], 'Create Robot');
     $assert->pageTextContains('Additionally, it can not be the reserved word "custom".');
 
   }
diff --git a/modules/config_entity_example/tests/src/Functional/RobotReferenceTest.php b/modules/config_entity_example/tests/src/Functional/RobotReferenceTest.php
index 8ad3162..47a0dff 100644
--- a/modules/config_entity_example/tests/src/Functional/RobotReferenceTest.php
+++ b/modules/config_entity_example/tests/src/Functional/RobotReferenceTest.php
@@ -58,17 +58,11 @@ class RobotReferenceTest extends BrowserTestBase {
 
     // - Under "Reference" select "other".
     // - Choose a label and click continue.
-    $this->drupalPostForm(NULL, [
-      'new_storage_type' => 'entity_reference',
-      'field_name' => 'robot_reference',
-      'label' => 'robot_reference',
-    ], 'Save and continue');
+    $this->submitForm(['new_storage_type' => 'entity_reference', 'field_name' => 'robot_reference', 'label' => 'robot_reference'], 'Save and continue');
     $assert->statusCodeEquals(200);
 
     // - Under configuration select "robot".
-    $this->drupalPostForm(NULL, [
-      'settings[target_type]' => 'robot',
-    ], 'Save field settings');
+    $this->submitForm(['settings[target_type]' => 'robot'], 'Save field settings');
     $assert->statusCodeEquals(200);
 
     // - Create a content entity containing the created reference field. Select
@@ -77,10 +71,8 @@ class RobotReferenceTest extends BrowserTestBase {
     $robot = Robot::loadMultiple();
     /* @var $robot \Drupal\config_entity_example\Entity\Robot */
     $robot = reset($robot);
-    $this->drupalPostForm(Url::fromRoute('node.add', ['node_type' => $type->id()]), [
-      'title[0][value]' => 'title',
-      'field_robot_reference[0][target_id]' => $robot->label(),
-    ], 'Save');
+    $this->drupalGet(Url::fromRoute('node.add', ['node_type' => $type->id()]));
+    $this->submitForm(['title[0][value]' => 'title', 'field_robot_reference[0][target_id]' => $robot->label()], 'Save');
     $assert->statusCodeEquals(200);
     $assert->pageTextContains($robot->label());
   }
diff --git a/modules/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php b/modules/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php
index 143284c..452ad51 100644
--- a/modules/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php
+++ b/modules/content_entity_example/tests/src/Functional/ContentEntityExampleTest.php
@@ -75,7 +75,7 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
       'first_name[0][value]' => 'test first name',
       'role' => 'administrator',
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
 
     // Entity listed.
     $assert->linkExists('Edit');
@@ -96,7 +96,7 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
 
     // Confirm deletion.
     $assert->linkExists('Cancel');
-    $this->drupalPostForm(NULL, [], 'Delete');
+    $this->submitForm([], 'Delete');
 
     // Back to list, must be empty.
     $assert->pageTextNotContains('test name');
@@ -245,7 +245,7 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
       'field_name' => $field_name,
     ];
 
-    $this->drupalPostForm(NULL, $edit, 'Save and continue');
+    $this->submitForm($edit, 'Save and continue');
     $expected_path = $this->buildUrl('admin/structure/' . $entity_name . '_settings/fields/' . $entity_name . '.' . $entity_name . '.field_' . $field_name . '/storage');
 
     // Fetch url without query parameters.
@@ -279,7 +279,8 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
       'first_name[0][value]' => 'Admin First Name',
       'role' => 'administrator',
     ];
-    $this->drupalPostForm($add_url, $edit, 'Save');
+    $this->drupalGet($add_url);
+    $this->submitForm($edit, 'Save');
     $assert->statusCodeEquals(200);
     $assert->pageTextContains('Test Admin Name');
 
@@ -297,7 +298,8 @@ class ContentEntityExampleTest extends ExamplesBrowserTestBase {
       'first_name[0][value]' => 'Mortal First Name',
       'role' => 'user',
     ];
-    $this->drupalPostForm($add_url, $edit, 'Save');
+    $this->drupalGet($add_url);
+    $this->submitForm($edit, 'Save');
     $assert->statusCodeEquals(200);
     $assert->pageTextContains('Mere Mortal Name');
 
diff --git a/modules/cron_example/tests/src/Functional/CronExampleTest.php b/modules/cron_example/tests/src/Functional/CronExampleTest.php
index 128a742..1447361 100644
--- a/modules/cron_example/tests/src/Functional/CronExampleTest.php
+++ b/modules/cron_example/tests/src/Functional/CronExampleTest.php
@@ -52,17 +52,18 @@ class CronExampleTest extends ExamplesBrowserTestBase {
 
     // Initial run should cause cron_example_cron() to fire.
     $post = [];
-    $this->drupalPostForm($cron_form, $post, 'Run cron now');
+    $this->drupalGet($cron_form);
+    $this->submitForm($post, 'Run cron now');
     $assert->pageTextContains('cron_example executed at');
 
     // Forcing should also cause cron_example_cron() to fire.
     $post['cron_reset'] = TRUE;
-    $this->drupalPostForm(NULL, $post, 'Run cron now');
+    $this->submitForm($post, 'Run cron now');
     $assert->pageTextContains('cron_example executed at');
 
     // But if followed immediately and not forced, it should not fire.
     $post['cron_reset'] = FALSE;
-    $this->drupalPostForm(NULL, $post, 'Run cron now');
+    $this->submitForm($post, 'Run cron now');
     $assert->statusCodeEquals(200);
     $assert->pageTextNotContains('cron_example executed at');
     $assert->pageTextContains('There are currently 0 items in queue 1 and 0 items in queue 2');
@@ -71,17 +72,18 @@ class CronExampleTest extends ExamplesBrowserTestBase {
       'num_items' => 5,
       'queue' => 'cron_example_queue_1',
     ];
-    $this->drupalPostForm(NULL, $post, 'Add jobs to queue');
+    $this->submitForm($post, 'Add jobs to queue');
     $assert->pageTextContains('There are currently 5 items in queue 1 and 0 items in queue 2');
 
     $post = [
       'num_items' => 100,
       'queue' => 'cron_example_queue_2',
     ];
-    $this->drupalPostForm(NULL, $post, 'Add jobs to queue');
+    $this->submitForm($post, 'Add jobs to queue');
     $assert->pageTextContains('There are currently 5 items in queue 1 and 100 items in queue 2');
 
-    $this->drupalPostForm($cron_form, [], 'Run cron now');
+    $this->drupalGet($cron_form);
+    $this->submitForm([], 'Run cron now');
     $assert->responseMatches('/Queue 1 worker processed item with sequence 5 /');
     $assert->responseMatches('/Queue 2 worker processed item with sequence 100 /');
   }
diff --git a/modules/dbtng_example/tests/src/Functional/DbtngExampleTest.php b/modules/dbtng_example/tests/src/Functional/DbtngExampleTest.php
index e779669..c74c01a 100644
--- a/modules/dbtng_example/tests/src/Functional/DbtngExampleTest.php
+++ b/modules/dbtng_example/tests/src/Functional/DbtngExampleTest.php
@@ -100,15 +100,8 @@ class DbtngExampleTest extends ExamplesBrowserTestBase {
 
     // Test the add tab.
     // Add the new entry.
-    $this->drupalPostForm(
-      '/examples/dbtng-example/add',
-      [
-        'name' => 'Some',
-        'surname' => 'Anonymous',
-        'age' => 33,
-      ],
-      'Add'
-    );
+    $this->drupalGet('/examples/dbtng-example/add');
+    $this->submitForm(['name' => 'Some', 'surname' => 'Anonymous', 'age' => 33], 'Add');
     // Now find the new entry.
     $this->drupalGet('/examples/dbtng-example');
     $assert->pageTextMatches('%Some[td/<>\w\s]+Anonymous%');
@@ -121,7 +114,8 @@ class DbtngExampleTest extends ExamplesBrowserTestBase {
     unset($entry->uid);
 
     $entry = ['name' => 'NewFirstName', 'age' => 22];
-    $this->drupalPostForm('/examples/dbtng-example/update', $entry, 'Update');
+    $this->drupalGet('/examples/dbtng-example/update');
+    $this->submitForm($entry, 'Update');
     // Now find the new entry.
     $this->drupalGet('/examples/dbtng-example');
     $assert->pageTextMatches('%NewFirstName[td/<>\w\s]+Anonymous%');
@@ -136,15 +130,8 @@ class DbtngExampleTest extends ExamplesBrowserTestBase {
 
     // Try to add an entry while logged out.
     $this->drupalLogout();
-    $this->drupalPostForm(
-      '/examples/dbtng-example/add',
-      [
-        'name' => 'Anonymous',
-        'surname' => 'UserCannotPost',
-        'age' => 'not a number',
-      ],
-      'Add'
-    );
+    $this->drupalGet('/examples/dbtng-example/add');
+    $this->submitForm(['name' => 'Anonymous', 'surname' => 'UserCannotPost', 'age' => 'not a number'], 'Add');
     $assert->pageTextContains('You must be logged in to add values to the database.');
     $assert->pageTextContains('Age needs to be a number');
   }
diff --git a/modules/email_example/tests/src/Functional/EmailExampleTest.php b/modules/email_example/tests/src/Functional/EmailExampleTest.php
index a476d9b..7ac195d 100644
--- a/modules/email_example/tests/src/Functional/EmailExampleTest.php
+++ b/modules/email_example/tests/src/Functional/EmailExampleTest.php
@@ -61,7 +61,8 @@ class EmailExampleTest extends ExamplesBrowserTestBase {
 
     // Verifiy email form is submitted.
     $edit = ['email' => 'example@example.com', 'message' => 'test'];
-    $this->drupalPostForm('examples/email-example', $edit, 'Submit');
+    $this->drupalGet('examples/email-example');
+    $this->submitForm($edit, 'Submit');
     $assert->statusCodeEquals(200);
 
     // Verifiy comfirmation page.
diff --git a/modules/events_example/tests/src/Functional/EventsExampleTest.php b/modules/events_example/tests/src/Functional/EventsExampleTest.php
index eb6a238..b5b8e1c 100644
--- a/modules/events_example/tests/src/Functional/EventsExampleTest.php
+++ b/modules/events_example/tests/src/Functional/EventsExampleTest.php
@@ -57,7 +57,8 @@ class EventsExampleTest extends BrowserTestBase {
       'incident_type' => 'stolen_princess',
       'incident' => $this->randomString(),
     ];
-    $this->drupalPostForm($events_example_form, $values, 'Submit');
+    $this->drupalGet($events_example_form);
+    $this->submitForm($values, 'Submit');
     $this->assertSession()->pageTextContains('Mario has been alerted. Thank you.');
 
     // Fill out the form again, this time testing that the
@@ -66,7 +67,8 @@ class EventsExampleTest extends BrowserTestBase {
       'incident_type' => 'joker',
       'incident' => $this->randomString(),
     ];
-    $this->drupalPostForm($events_example_form, $values, 'Submit');
+    $this->drupalGet($events_example_form);
+    $this->submitForm($values, 'Submit');
     $this->assertSession()->pageTextContains('Batman has been alerted. Thank you.');
 
     // Fill out the form again, this time testing that our default handler
@@ -75,7 +77,8 @@ class EventsExampleTest extends BrowserTestBase {
       'incident_type' => 'cat',
       'incident' => $this->randomString(),
     ];
-    $this->drupalPostForm($events_example_form, $values, 'Submit');
+    $this->drupalGet($events_example_form);
+    $this->submitForm($values, 'Submit');
     $this->assertSession()->pageTextContains('notifyDefault()');
   }
 
diff --git a/modules/field_example/tests/src/Functional/ColorBackgroundFormatterTest.php b/modules/field_example/tests/src/Functional/ColorBackgroundFormatterTest.php
index 71a3ac4..75fc08d 100644
--- a/modules/field_example/tests/src/Functional/ColorBackgroundFormatterTest.php
+++ b/modules/field_example/tests/src/Functional/ColorBackgroundFormatterTest.php
@@ -45,7 +45,7 @@ class ColorBackgroundFormatterTest extends FieldExampleBrowserTestBase {
     ];
 
     // Submit the content creation form.
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $assert->pageTextContains((string) new FormattableMarkup('@type @title has been created', ['@type' => $this->contentTypeName, '@title' => $title]));
 
     // Verify color.
@@ -81,7 +81,7 @@ class ColorBackgroundFormatterTest extends FieldExampleBrowserTestBase {
     ];
 
     // Add another field value.
-    $this->drupalPostForm(NULL, $edit, 'Add another item');
+    $this->submitForm($edit, 'Add another item');
 
     // Set value for newly added item.
     $edit = [
@@ -89,7 +89,7 @@ class ColorBackgroundFormatterTest extends FieldExampleBrowserTestBase {
     ];
 
     // Submit the content creation form.
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $assert->pageTextContains((string) new FormattableMarkup('@type @title has been created', ['@type' => $this->contentTypeName, '@title' => $title]));
 
     // Verify color.
diff --git a/modules/field_example/tests/src/Functional/ColorPickerWidgetTest.php b/modules/field_example/tests/src/Functional/ColorPickerWidgetTest.php
index 4d7021a..27e7d70 100644
--- a/modules/field_example/tests/src/Functional/ColorPickerWidgetTest.php
+++ b/modules/field_example/tests/src/Functional/ColorPickerWidgetTest.php
@@ -46,7 +46,7 @@ class ColorPickerWidgetTest extends FieldExampleBrowserTestBase {
     ];
 
     // Submit the content creation form.
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $assert->pageTextContains((string) new FormattableMarkup('@type @title has been created', ['@type' => $this->contentTypeName, '@title' => $title]));
 
     // Verify color.
@@ -82,7 +82,7 @@ class ColorPickerWidgetTest extends FieldExampleBrowserTestBase {
     ];
 
     // Add another field value.
-    $this->drupalPostForm(NULL, $edit, 'Add another item');
+    $this->submitForm($edit, 'Add another item');
 
     // Set value for newly added item.
     $edit = [
@@ -90,7 +90,7 @@ class ColorPickerWidgetTest extends FieldExampleBrowserTestBase {
     ];
 
     // Submit the content creation form.
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $assert->pageTextContains((string) new FormattableMarkup('@type @title has been created', ['@type' => $this->contentTypeName, '@title' => $title]));
 
     // Verify color.
diff --git a/modules/field_example/tests/src/Functional/FieldExampleBrowserTestBase.php b/modules/field_example/tests/src/Functional/FieldExampleBrowserTestBase.php
index 76d87f1..a4fc78b 100644
--- a/modules/field_example/tests/src/Functional/FieldExampleBrowserTestBase.php
+++ b/modules/field_example/tests/src/Functional/FieldExampleBrowserTestBase.php
@@ -79,7 +79,7 @@ abstract class FieldExampleBrowserTestBase extends ExamplesBrowserTestBase {
       'name' => $this->contentTypeName,
       'type' => $this->contentTypeName,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save and manage fields');
+    $this->submitForm($edit, 'Save and manage fields');
     $this->assertText((string) new FormattableMarkup('The content type @name has been added.', ['@name' => $this->contentTypeName]));
 
     // Reset the permission cache.
@@ -123,7 +123,7 @@ abstract class FieldExampleBrowserTestBase extends ExamplesBrowserTestBase {
       'field_name' => $field_name,
       'label' => $field_name,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save and continue');
+    $this->submitForm($edit, 'Save and continue');
 
     // Fill out the $cardinality form as if we're not using an unlimited number
     // of values.
@@ -141,7 +141,7 @@ abstract class FieldExampleBrowserTestBase extends ExamplesBrowserTestBase {
     }
 
     // And now we save the cardinality settings.
-    $this->drupalPostForm(NULL, $edit, 'Save field settings');
+    $this->submitForm($edit, 'Save field settings');
     $this->verbose(
       (string) new FormattableMarkup('Saved settings for field %field_name with widget %widget_type and cardinality %cardinality',
         [
@@ -158,14 +158,14 @@ abstract class FieldExampleBrowserTestBase extends ExamplesBrowserTestBase {
     $edit = [
       'fields[field_' . $field_name . '][type]' => $widget_type,
     ];
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
 
     // Set the field formatter for the newly created field.
     $this->drupalGet('admin/structure/types/manage/' . $this->contentTypeName . '/display');
     $edit1 = [
       'fields[field_' . $field_name . '][type]' => $fieldFormatter,
     ];
-    $this->drupalPostForm(NULL, $edit1, 'Save');
+    $this->submitForm($edit1, 'Save');
 
     return $field_name;
   }
diff --git a/modules/field_example/tests/src/Functional/Text3WidgetTest.php b/modules/field_example/tests/src/Functional/Text3WidgetTest.php
index 8b6b607..d197330 100644
--- a/modules/field_example/tests/src/Functional/Text3WidgetTest.php
+++ b/modules/field_example/tests/src/Functional/Text3WidgetTest.php
@@ -46,7 +46,7 @@ class Text3WidgetTest extends FieldExampleBrowserTestBase {
     ];
 
     // Create the content.
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $assert->pageTextContains((string) new FormattableMarkup('@type @title has been created', ['@type' => $this->contentTypeName, '@title' => $title]));
 
     // Verify the value is shown when viewing this node.
@@ -86,7 +86,7 @@ class Text3WidgetTest extends FieldExampleBrowserTestBase {
     ];
 
     // Add a 2nd item to the multivalue field, so hit "add another".
-    $this->drupalPostForm(NULL, $edit, 'Add another item');
+    $this->submitForm($edit, 'Add another item');
     $edit = [
       'field_' . $this->fieldName . '[1][value][r]' => 'ff',
       'field_' . $this->fieldName . '[1][value][g]' => 'ff',
@@ -94,7 +94,7 @@ class Text3WidgetTest extends FieldExampleBrowserTestBase {
     ];
 
     // Create the content.
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $assert->pageTextContains((string) new FormattableMarkup('@type @title has been created', ['@type' => $this->contentTypeName, '@title' => $title]));
 
     // Verify the values are shown when viewing this node.
diff --git a/modules/field_example/tests/src/Functional/TextWidgetTest.php b/modules/field_example/tests/src/Functional/TextWidgetTest.php
index 6f09500..65755b2 100644
--- a/modules/field_example/tests/src/Functional/TextWidgetTest.php
+++ b/modules/field_example/tests/src/Functional/TextWidgetTest.php
@@ -48,7 +48,7 @@ class TextWidgetTest extends FieldExampleBrowserTestBase {
     ];
 
     // Create the content.
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $assert->pageTextContains((string) new FormattableMarkup('@type @title has been created', ['@type' => $this->contentTypeName, '@title' => $title]));
 
     // Verify the value is shown when viewing this node.
@@ -87,14 +87,14 @@ class TextWidgetTest extends FieldExampleBrowserTestBase {
     ];
 
     // We want to add a 2nd item to the multivalue field, so hit "add another".
-    $this->drupalPostForm(NULL, $edit, 'Add another item');
+    $this->submitForm($edit, 'Add another item');
 
     $edit = [
       'field_' . $this->fieldName . '[1][value]' => '#ffffff',
     ];
 
     // Now we can fill in the second item in the multivalue field and save.
-    $this->drupalPostForm(NULL, $edit, 'Save');
+    $this->submitForm($edit, 'Save');
     $assert->pageTextContains((string) new FormattableMarkup('@type @title has been created', ['@type' => $this->contentTypeName, '@title' => $title]));
 
     // Verify the value is shown when viewing this node.
diff --git a/modules/form_api_example/tests/src/Functional/FapiExampleTest.php b/modules/form_api_example/tests/src/Functional/FapiExampleTest.php
index bbcf529..7128e2a 100644
--- a/modules/form_api_example/tests/src/Functional/FapiExampleTest.php
+++ b/modules/form_api_example/tests/src/Functional/FapiExampleTest.php
@@ -93,7 +93,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
       $this->drupalGet($path);
       $assertion->statusCodeEquals(200);
       foreach ($buttons as $button) {
-        $this->drupalPostForm($path, [], $button);
+        $this->drupalGet($path);
+        $this->submitForm([], $button);
         $assertion->statusCodeEquals(200);
       }
     }
@@ -109,7 +110,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
     $edit = [
       'temperature' => 'warm',
     ];
-    $this->drupalPostForm(Url::fromRoute('form_api_example.ajax_color_demo'), $edit, 'Submit');
+    $this->drupalGet(Url::fromRoute('form_api_example.ajax_color_demo'));
+    $this->submitForm($edit, 'Submit');
     $assert->statusCodeEquals(200);
     $assert->pageTextContains('Value for Temperature: warm');
   }
@@ -124,7 +126,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
     $edit = [
       'change' => '1',
     ];
-    $this->drupalPostForm($build_demo_url, $edit, 'Submit');
+    $this->drupalGet($build_demo_url);
+    $this->submitForm($edit, 'Submit');
 
     $assert->pageTextContains('1. __construct');
     $assert->pageTextContains('2. getFormId');
@@ -132,7 +135,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
     $assert->pageTextContains('4. submitForm');
 
     // Ensure the 'submit rebuild' action performs the rebuild.
-    $this->drupalPostForm($build_demo_url, $edit, 'Submit Rebuild');
+    $this->drupalGet($build_demo_url);
+    $this->submitForm($edit, 'Submit Rebuild');
     $assert->pageTextContains('4. rebuildFormSubmit');
   }
 
@@ -150,7 +154,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
       'publisher' => 'me',
       'diet' => 'vegan',
     ];
-    $this->drupalPostForm(Url::fromRoute('form_api_example.container_demo'), $edit, 'Submit');
+    $this->drupalGet(Url::fromRoute('form_api_example.container_demo'));
+    $this->submitForm($edit, 'Submit');
     $assert->pageTextContains('Value for name: Dave');
     $assert->pageTextContains('Value for pen_name: DMan');
     $assert->pageTextContains('Value for title: My Book');
@@ -189,7 +194,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
       'subject' => 'Form test',
       'weight' => '3',
     ];
-    $this->drupalPostForm(Url::fromRoute('form_api_example.input_demo'), $edit, 'Submit');
+    $this->drupalGet(Url::fromRoute('form_api_example.input_demo'));
+    $this->submitForm($edit, 'Submit');
     $assert->statusCodeEquals(200);
 
     $assert->pageTextContains('Value for What standardized tests did you take?');
@@ -224,7 +230,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
     $edit = [
       'title' => 'My Book',
     ];
-    $this->drupalPostForm(Url::fromRoute('form_api_example.modal_form'), $edit, 'Submit');
+    $this->drupalGet(Url::fromRoute('form_api_example.modal_form'));
+    $this->submitForm($edit, 'Submit');
     $assert->pageTextContains('Submit handler: You specified a title of My Book.');
   }
 
@@ -236,7 +243,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
 
     // Post a title.
     $edit = ['title' => 'My Custom Title'];
-    $this->drupalPostForm(Url::fromRoute('form_api_example.simple_form'), $edit, 'Submit');
+    $this->drupalGet(Url::fromRoute('form_api_example.simple_form'));
+    $this->submitForm($edit, 'Submit');
     $assert->pageTextContains('You specified a title of My Custom Title.');
   }
 
@@ -251,7 +259,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
       'needs_accommodation' => TRUE,
       'diet' => 'vegan',
     ];
-    $this->drupalPostForm(Url::fromRoute('form_api_example.state_demo'), $edit, 'Submit');
+    $this->drupalGet(Url::fromRoute('form_api_example.state_demo'));
+    $this->submitForm($edit, 'Submit');
     $assert->pageTextContains('Dietary Restriction Requested: vegan');
   }
 
@@ -266,7 +275,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
       'name' => 'Dave',
       'publisher' => 'me',
     ];
-    $this->drupalPostForm(Url::fromRoute('form_api_example.container_demo'), $edit, 'Submit');
+    $this->drupalGet(Url::fromRoute('form_api_example.container_demo'));
+    $this->submitForm($edit, 'Submit');
     $assert->pageTextContains('Value for name: Dave');
     $assert->pageTextContains('Value for publisher: me');
   }
@@ -294,7 +304,8 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
     // and click on 'Add one more' button.
     $edit = [];
     $edit['names_fieldset[name][0]'] = $name_one;
-    $this->drupalPostForm($ajax_addmore_url, $edit, 'Add one more');
+    $this->drupalGet($ajax_addmore_url);
+    $this->submitForm($edit, 'Add one more');
 
     // Verify field-2 gets added.
     // and value of field-1 should retained.
@@ -306,7 +317,7 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
     // Enter the value in field-2
     // and click on 'Add one more' button.
     $edit['names_fieldset[name][1]'] = $name_two;
-    $this->drupalPostForm(NULL, $edit, 'Add one more');
+    $this->submitForm($edit, 'Add one more');
 
     // Verify field-3 gets added.
     // and value of field-1 and field-2 are retained.
@@ -316,13 +327,13 @@ class FapiExampleTest extends ExamplesBrowserTestBase {
 
     // Click on "Remove one" button to test remove button works.
     // and value of field-1 and field-2 are retained.
-    $this->drupalPostForm(NULL, NULL, 'Remove one');
+    $this->submitForm(NULL, 'Remove one');
     $this->assertFieldsByValue($this->xpath('//input[@id = "edit-names-fieldset-name-0"]'), $name_one);
     $this->assertFieldsByValue($this->xpath('//input[@id = "edit-names-fieldset-name-1"]'), $name_two);
     $this->assertEmpty($this->xpath('//input[@id = "edit-names-fieldset-name-2"]'));
 
     // Submit the form and verify the results.
-    $this->drupalPostForm(NULL, NULL, 'Submit');
+    $this->submitForm(NULL, 'Submit');
     $this->assertText('These people are coming to the picnic: ' . $name_one . ', ' . $name_two);
 
   }
diff --git a/modules/form_api_example/tests/src/Functional/SimpleFormBlockTest.php b/modules/form_api_example/tests/src/Functional/SimpleFormBlockTest.php
index 5871394..261e986 100644
--- a/modules/form_api_example/tests/src/Functional/SimpleFormBlockTest.php
+++ b/modules/form_api_example/tests/src/Functional/SimpleFormBlockTest.php
@@ -52,7 +52,7 @@ class SimpleFormBlockTest extends BrowserTestBase {
     // And that the form works.
     $edit = [];
     $edit['title'] = 'SimpleFormBlock title example';
-    $this->drupalPostForm(NULL, $edit, t('Submit'));
+    $this->submitForm($edit, t('Submit'));
     $assert->pageTextContains('You specified a title of SimpleFormBlock title example');
   }
 
diff --git a/modules/node_type_example/tests/src/Functional/NodeTypeExampleTest.php b/modules/node_type_example/tests/src/Functional/NodeTypeExampleTest.php
index d81b2d4..8998421 100644
--- a/modules/node_type_example/tests/src/Functional/NodeTypeExampleTest.php
+++ b/modules/node_type_example/tests/src/Functional/NodeTypeExampleTest.php
@@ -116,7 +116,8 @@ class NodeTypeExampleTest extends ExamplesBrowserTestBase {
     $edit = [];
     $edit['title[0][value]'] = $this->randomMachineName(8);
     $edit['body[0][value]'] = $this->randomMachineName(16);
-    $this->drupalPostForm('/node/add/basic_content_type', $edit, 'Save');
+    $this->drupalGet('/node/add/basic_content_type');
+    $this->submitForm($edit, 'Save');
 
     // Check that the Basic page has been created.
     $assert->pageTextContains((string) new FormattableMarkup('@post @title has been created.', [
@@ -149,13 +150,15 @@ class NodeTypeExampleTest extends ExamplesBrowserTestBase {
     $edit['body[0][value]'] = $body;
 
     // Create a basic_content_type content.
-    $this->drupalPostForm('/node/add/basic_content_type', $edit, 'Save');
+    $this->drupalGet('/node/add/basic_content_type');
+    $this->submitForm($edit, 'Save');
     // Verify all fields and data of created content is shown.
     $this->assertText($title);
     $this->assertText($body);
 
     // Create a locked_content_type content.
-    $this->drupalPostForm('/node/add/locked_content_type', $edit, 'Save');
+    $this->drupalGet('/node/add/locked_content_type');
+    $this->submitForm($edit, 'Save');
     // Verify all fields and data of created content is shown.
     $this->assertText($title);
     $this->assertText($body);
diff --git a/modules/queue_example/tests/src/Functional/QueueExampleTest.php b/modules/queue_example/tests/src/Functional/QueueExampleTest.php
index 7279351..25a34a1 100644
--- a/modules/queue_example/tests/src/Functional/QueueExampleTest.php
+++ b/modules/queue_example/tests/src/Functional/QueueExampleTest.php
@@ -42,17 +42,17 @@ class QueueExampleTest extends BrowserTestBase {
     // Load the queue with 5 items.
     for ($i = 1; $i <= 5; $i++) {
       $edit = ['queue_name' => 'queue_example_first_queue', 'string_to_add' => 'boogie' . $i];
-      $this->drupalPostForm(NULL, $edit, 'Insert into queue');
+      $this->submitForm($edit, 'Insert into queue');
       $this->assertText((string) new FormattableMarkup('There are now @number items in the queue', ['@number' => $i]));
     }
     // Claim each of the 5 items with a claim time of 0 seconds.
     for ($i = 1; $i <= 5; $i++) {
       $edit = ['queue_name' => 'queue_example_first_queue', 'claim_time' => 0];
-      $this->drupalPostForm(NULL, $edit, 'Claim the next item from the queue');
+      $this->submitForm($edit, 'Claim the next item from the queue');
       $this->assertPattern((string) new FormattableMarkup('%Claimed item id=.*string=@string for 0 seconds.%', ['@string' => 'boogie' . $i]));
     }
     $edit = ['queue_name' => 'queue_example_first_queue', 'claim_time' => 0];
-    $this->drupalPostForm(NULL, $edit, 'Claim the next item from the queue');
+    $this->submitForm($edit, 'Claim the next item from the queue');
     $this->assertText('There were no items in the queue available to claim');
 
     // Sleep a second so we can make sure that the timeouts actually time out.
@@ -61,17 +61,17 @@ class QueueExampleTest extends BrowserTestBase {
     sleep(1);
 
     // Run cron to release expired items.
-    $this->drupalPostForm(NULL, [], 'Run cron manually to expire claims');
+    $this->submitForm([], 'Run cron manually to expire claims');
 
     // Claim and delete each of the 5 items which should now be available.
     for ($i = 1; $i <= 5; $i++) {
       $edit = ['queue_name' => 'queue_example_first_queue', 'claim_time' => 0];
-      $this->drupalPostForm(NULL, $edit, 'Claim the next item and delete it');
+      $this->submitForm($edit, 'Claim the next item and delete it');
       $this->assertPattern((string) new FormattableMarkup('%Claimed and deleted item id=.*string=@string for 0 seconds.%', ['@string' => 'boogie' . $i]));
     }
     // Verify that nothing is left to claim.
     $edit = ['queue_name' => 'queue_example_first_queue', 'claim_time' => 0];
-    $this->drupalPostForm(NULL, $edit, 'Claim the next item from the queue');
+    $this->submitForm($edit, 'Claim the next item from the queue');
     $this->assertText('There were no items in the queue available to claim');
   }
 
diff --git a/modules/render_example/tests/src/Functional/RenderExampleMenuTest.php b/modules/render_example/tests/src/Functional/RenderExampleMenuTest.php
index d7acaf8..b81cd33 100644
--- a/modules/render_example/tests/src/Functional/RenderExampleMenuTest.php
+++ b/modules/render_example/tests/src/Functional/RenderExampleMenuTest.php
@@ -68,7 +68,8 @@ class RenderExampleMenuTest extends BrowserTestBase {
       $this->drupalGet($path);
       $assertion->statusCodeEquals(200);
       foreach ($buttons as $button) {
-        $this->drupalPostForm($path, [], $button);
+        $this->drupalGet($path);
+        $this->submitForm([], $button);
         $assertion->statusCodeEquals(200);
       }
     }
diff --git a/modules/render_example/tests/src/Functional/RenderExampleTest.php b/modules/render_example/tests/src/Functional/RenderExampleTest.php
index 4143cbf..ea9bd42 100644
--- a/modules/render_example/tests/src/Functional/RenderExampleTest.php
+++ b/modules/render_example/tests/src/Functional/RenderExampleTest.php
@@ -60,15 +60,8 @@ class RenderExampleTest extends BrowserTestBase {
     $breadcrumb_xpath = "//main[@id='content']//div[contains(@class, 'block-system-breadcrumb-block')]";
     $this->assertEmpty($this->xpath($breadcrumb_xpath));
     // Move the breadcrumbs to content region.
-    $this->drupalPostForm(
-      $altering_url,
-      [
-        'render_example_move_breadcrumbs' => TRUE,
-        'render_example_reverse_sidebar' => FALSE,
-        'render_example_wrap_blocks' => FALSE,
-      ],
-      'Save configuration'
-    );
+    $this->drupalGet($altering_url);
+    $this->submitForm(['render_example_move_breadcrumbs' => TRUE, 'render_example_reverse_sidebar' => FALSE, 'render_example_wrap_blocks' => FALSE], 'Save configuration');
     $this->assertNotEmpty($this->xpath($breadcrumb_xpath));
 
     // Test reversing order of items in region sidebar-first. Get the node
@@ -79,15 +72,8 @@ class RenderExampleTest extends BrowserTestBase {
     $this->assertEquals('div', $elements[0]->getTagName());
     $this->assertTrue($elements[0]->hasClass('block-search'));
     $this->assertEquals('nav', $elements[1]->getTagName());
-    $this->drupalPostForm(
-      $altering_url,
-      [
-        'render_example_move_breadcrumbs' => FALSE,
-        'render_example_reverse_sidebar' => TRUE,
-        'render_example_wrap_blocks' => FALSE,
-      ],
-      'Save configuration'
-    );
+    $this->drupalGet($altering_url);
+    $this->submitForm(['render_example_move_breadcrumbs' => FALSE, 'render_example_reverse_sidebar' => TRUE, 'render_example_wrap_blocks' => FALSE], 'Save configuration');
     // Get the elements again.
     $elements = $this->xpath($breadcrumb_xpath);
     // There should be two elements, a nav and then a div.
@@ -98,15 +84,8 @@ class RenderExampleTest extends BrowserTestBase {
     // Test wrapping blocks in divs.
     $xpath = "//div[contains(@class,'block')]//div[@class='content']/div[@class='block-prefix']";
     $this->assertEmpty($this->xpath($xpath));
-    $this->drupalPostForm(
-      $altering_url,
-      [
-        'render_example_move_breadcrumbs' => FALSE,
-        'render_example_reverse_sidebar' => FALSE,
-        'render_example_wrap_blocks' => TRUE,
-      ],
-      'Save configuration'
-    );
+    $this->drupalGet($altering_url);
+    $this->submitForm(['render_example_move_breadcrumbs' => FALSE, 'render_example_reverse_sidebar' => FALSE, 'render_example_wrap_blocks' => TRUE], 'Save configuration');
     $this->assertNotEmpty($this->xpath($xpath));
 
     // Test some rendering facets of the various render examples.
diff --git a/modules/rest_example/tests/src/Functional/RestExampleSettingsTest.php b/modules/rest_example/tests/src/Functional/RestExampleSettingsTest.php
index 0900c70..c51e893 100644
--- a/modules/rest_example/tests/src/Functional/RestExampleSettingsTest.php
+++ b/modules/rest_example/tests/src/Functional/RestExampleSettingsTest.php
@@ -46,7 +46,8 @@ class RestExampleSettingsTest extends BrowserTestBase {
       'server_password' => $account->passRaw,
     ];
 
-    $this->drupalPostForm(base_path() . 'examples/rest-client-settings', $edit, t('Save configuration'));
+    $this->drupalGet(base_path() . 'examples/rest-client-settings');
+    $this->submitForm($edit, t('Save configuration'));
     $this->assertText('The configuration options have been saved.');
 
     $config_factory = \Drupal::configFactory();
diff --git a/modules/session_example/tests/src/Functional/SessionExampleTest.php b/modules/session_example/tests/src/Functional/SessionExampleTest.php
index cdd8423..4068960 100644
--- a/modules/session_example/tests/src/Functional/SessionExampleTest.php
+++ b/modules/session_example/tests/src/Functional/SessionExampleTest.php
@@ -68,7 +68,8 @@ class SessionExampleTest extends BrowserTestBase {
       $this->drupalGet($url);
       $assert->statusCodeEquals(200);
       foreach ($buttons as $button) {
-        $this->drupalPostForm($url, [], $button);
+        $this->drupalGet($url);
+        $this->submitForm([], $button);
         $assert->statusCodeEquals(200);
       }
     }
@@ -93,7 +94,8 @@ class SessionExampleTest extends BrowserTestBase {
     $assert->pageTextContains('No color');
 
     // Save an empty session submission.
-    $this->drupalPostForm(Url::fromRoute('session_example.form'), [], 'Save');
+    $this->drupalGet(Url::fromRoute('session_example.form'));
+    $this->submitForm([], 'Save');
     $assert->pageTextContains('The session has been saved successfully.');
 
     // Make sure an empty session submission still has no reported information.
@@ -109,7 +111,8 @@ class SessionExampleTest extends BrowserTestBase {
       'quest' => 'To seek the Grail',
       'color' => 'blue',
     ];
-    $this->drupalPostForm(Url::fromRoute('session_example.form'), $form_data, 'Save');
+    $this->drupalGet(Url::fromRoute('session_example.form'));
+    $this->submitForm($form_data, 'Save');
 
     // Check that the report shows our information.
     $this->clickLink('Check here');
@@ -118,7 +121,8 @@ class SessionExampleTest extends BrowserTestBase {
     }
 
     // Clear the session.
-    $this->drupalPostForm(Url::fromRoute('session_example.form'), [], 'Clear Session');
+    $this->drupalGet(Url::fromRoute('session_example.form'));
+    $this->submitForm([], 'Clear Session');
     $assert->pageTextContains('Session is cleared.');
 
     // Verify that the session information doesn't show Sir Lancelot (or anyone
@@ -141,7 +145,8 @@ class SessionExampleTest extends BrowserTestBase {
       'quest' => 'To seek the Grail',
       'color' => 'blue',
     ];
-    $this->drupalPostForm(Url::fromRoute('session_example.form'), $form_data, 'Save');
+    $this->drupalGet(Url::fromRoute('session_example.form'));
+    $this->submitForm($form_data, 'Save');
 
     // Check that the report shows our information.
     $this->clickLink('Check here');
diff --git a/modules/tabledrag_example/tests/src/Functional/TabledragMenuTest.php b/modules/tabledrag_example/tests/src/Functional/TabledragMenuTest.php
index b03a3f3..03440fc 100644
--- a/modules/tabledrag_example/tests/src/Functional/TabledragMenuTest.php
+++ b/modules/tabledrag_example/tests/src/Functional/TabledragMenuTest.php
@@ -79,7 +79,8 @@ class TabledragMenuTest extends BrowserTestBase {
     foreach ($pages as $route => $buttons) {
       $path = Url::fromRoute($route);
       foreach ($buttons as $button) {
-        $this->drupalPostForm($path, [], $button);
+        $this->drupalGet($path);
+        $this->submitForm([], $button);
         $assertion->statusCodeEquals(200);
       }
     }
diff --git a/modules/testing_example/tests/src/Functional/ExampleFunctionalTest.php b/modules/testing_example/tests/src/Functional/ExampleFunctionalTest.php
index 09cecbf..ee36282 100644
--- a/modules/testing_example/tests/src/Functional/ExampleFunctionalTest.php
+++ b/modules/testing_example/tests/src/Functional/ExampleFunctionalTest.php
@@ -96,7 +96,7 @@ class ExampleFunctionalTest extends ExamplesBrowserTestBase {
     ];
     // Tell Drupal to post our new content. We post to NULL for the URL which
     // tells drupalPostForm() to use the current page.
-    $this->drupalPostForm(NULL, $edit, 'op');
+    $this->submitForm($edit, 'op');
     // Check our expectations.
     $assert->statusCodeEquals(200);
     $assert->linkExists($nodeTitle);
