diff --git a/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/LocalHostWebClient.java b/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/LocalHostWebClient.java
deleted file mode 100644
index 2e9bea7ab03..00000000000
--- a/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/LocalHostWebClient.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2012-present the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.boot.web.server.test.htmlunit;
-
-import java.io.IOException;
-
-import org.htmlunit.FailingHttpStatusCodeException;
-import org.htmlunit.Page;
-import org.htmlunit.WebClient;
-
-import org.springframework.core.env.Environment;
-import org.springframework.util.Assert;
-
-/**
- * {@link WebClient} will automatically prefix relative URLs with
- * localhost:${local.server.port}.
- *
- * @author Phillip Webb
- * @since 4.0.0
- */
-public class LocalHostWebClient extends WebClient {
-
- private final Environment environment;
-
- public LocalHostWebClient(Environment environment) {
- Assert.notNull(environment, "'environment' must not be null");
- this.environment = environment;
- }
-
- @Override
- public
P getPage(String url) throws IOException, FailingHttpStatusCodeException {
- if (url.startsWith("/")) {
- String port = this.environment.getProperty("local.server.port", "8080");
- url = "http://localhost:" + port + url;
- }
- return super.getPage(url);
- }
-
-}
diff --git a/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/package-info.java b/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/package-info.java
deleted file mode 100644
index 9136ae6ce0e..00000000000
--- a/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2012-present the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * HtmlUnit support classes.
- */
-@NullMarked
-package org.springframework.boot.web.server.test.htmlunit;
-
-import org.jspecify.annotations.NullMarked;
diff --git a/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/webdriver/LocalHostWebConnectionHtmlUnitDriver.java b/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/webdriver/LocalHostWebConnectionHtmlUnitDriver.java
deleted file mode 100644
index 2620fbafd05..00000000000
--- a/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/webdriver/LocalHostWebConnectionHtmlUnitDriver.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright 2012-present the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.boot.web.server.test.htmlunit.webdriver;
-
-import org.htmlunit.BrowserVersion;
-import org.openqa.selenium.Capabilities;
-
-import org.springframework.core.env.Environment;
-import org.springframework.test.web.servlet.htmlunit.webdriver.WebConnectionHtmlUnitDriver;
-import org.springframework.util.Assert;
-
-/**
- * {@link LocalHostWebConnectionHtmlUnitDriver} will automatically prefix relative URLs
- * with localhost:${local.server.port}.
- *
- * @author Phillip Webb
- * @since 4.0.0
- */
-public class LocalHostWebConnectionHtmlUnitDriver extends WebConnectionHtmlUnitDriver {
-
- private final Environment environment;
-
- public LocalHostWebConnectionHtmlUnitDriver(Environment environment) {
- Assert.notNull(environment, "'environment' must not be null");
- this.environment = environment;
- }
-
- public LocalHostWebConnectionHtmlUnitDriver(Environment environment, boolean enableJavascript) {
- super(enableJavascript);
- Assert.notNull(environment, "'environment' must not be null");
- this.environment = environment;
- }
-
- public LocalHostWebConnectionHtmlUnitDriver(Environment environment, BrowserVersion browserVersion) {
- super(browserVersion);
- Assert.notNull(environment, "'environment' must not be null");
- this.environment = environment;
- }
-
- public LocalHostWebConnectionHtmlUnitDriver(Environment environment, Capabilities capabilities) {
- super(capabilities);
- Assert.notNull(environment, "'environment' must not be null");
- this.environment = environment;
- }
-
- @Override
- public void get(String url) {
- if (url.startsWith("/")) {
- String port = this.environment.getProperty("local.server.port", "8080");
- url = "http://localhost:" + port + url;
- }
- super.get(url);
- }
-
-}
diff --git a/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/webdriver/package-info.java b/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/webdriver/package-info.java
deleted file mode 100644
index c87752c6279..00000000000
--- a/module/spring-boot-web-server-test/src/main/java/org/springframework/boot/web/server/test/htmlunit/webdriver/package-info.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2012-present the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Selenium support classes.
- */
-@NullMarked
-package org.springframework.boot.web.server.test.htmlunit.webdriver;
-
-import org.jspecify.annotations.NullMarked;
diff --git a/module/spring-boot-web-server-test/src/test/java/org/springframework/boot/web/server/test/htmlunit/LocalHostWebClientTests.java b/module/spring-boot-web-server-test/src/test/java/org/springframework/boot/web/server/test/htmlunit/LocalHostWebClientTests.java
deleted file mode 100644
index 96aa5f51a9c..00000000000
--- a/module/spring-boot-web-server-test/src/test/java/org/springframework/boot/web/server/test/htmlunit/LocalHostWebClientTests.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2012-present the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.boot.web.server.test.htmlunit;
-
-import java.io.IOException;
-import java.net.URL;
-
-import org.htmlunit.StringWebResponse;
-import org.htmlunit.WebClient;
-import org.htmlunit.WebConnection;
-import org.htmlunit.WebResponse;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.junit.jupiter.MockitoExtension;
-
-import org.springframework.mock.env.MockEnvironment;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.assertArg;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.BDDMockito.then;
-import static org.mockito.Mockito.mock;
-
-/**
- * Tests for {@link LocalHostWebClient}.
- *
- * @author Phillip Webb
- */
-@SuppressWarnings("resource")
-@ExtendWith(MockitoExtension.class)
-class LocalHostWebClientTests {
-
- @Test
- void createWhenEnvironmentIsNullWillThrowException() {
- assertThatIllegalArgumentException().isThrownBy(() -> new LocalHostWebClient(null))
- .withMessageContaining("'environment' must not be null");
- }
-
- @Test
- void getPageWhenUrlIsRelativeAndNoPortWillUseLocalhost8080() throws Exception {
- MockEnvironment environment = new MockEnvironment();
- WebClient client = new LocalHostWebClient(environment);
- WebConnection connection = mockConnection();
- client.setWebConnection(connection);
- client.getPage("/test");
- URL expectedUrl = new URL("http://localhost:8080/test");
- then(connection).should()
- .getResponse(assertArg((request) -> assertThat(request.getUrl()).isEqualTo(expectedUrl)));
- }
-
- @Test
- void getPageWhenUrlIsRelativeAndHasPortWillUseLocalhostPort() throws Exception {
- MockEnvironment environment = new MockEnvironment();
- environment.setProperty("local.server.port", "8181");
- WebClient client = new LocalHostWebClient(environment);
- WebConnection connection = mockConnection();
- client.setWebConnection(connection);
- client.getPage("/test");
- URL expectedUrl = new URL("http://localhost:8181/test");
- then(connection).should()
- .getResponse(assertArg((request) -> assertThat(request.getUrl()).isEqualTo(expectedUrl)));
- }
-
- private WebConnection mockConnection() throws IOException {
- WebConnection connection = mock(WebConnection.class);
- WebResponse response = new StringWebResponse("test", new URL("http://localhost"));
- given(connection.getResponse(any())).willReturn(response);
- return connection;
- }
-
-}
diff --git a/module/spring-boot-web-server-test/src/test/java/org/springframework/boot/web/server/test/htmlunit/webdriver/LocalHostWebConnectionHtmlUnitDriverTests.java b/module/spring-boot-web-server-test/src/test/java/org/springframework/boot/web/server/test/htmlunit/webdriver/LocalHostWebConnectionHtmlUnitDriverTests.java
deleted file mode 100644
index f6c5d8ad881..00000000000
--- a/module/spring-boot-web-server-test/src/test/java/org/springframework/boot/web/server/test/htmlunit/webdriver/LocalHostWebConnectionHtmlUnitDriverTests.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright 2012-present the original author or authors.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.boot.web.server.test.htmlunit.webdriver;
-
-import java.net.URL;
-
-import org.htmlunit.BrowserVersion;
-import org.htmlunit.TopLevelWindow;
-import org.htmlunit.WebClient;
-import org.htmlunit.WebClientOptions;
-import org.htmlunit.WebConsole;
-import org.htmlunit.WebRequest;
-import org.htmlunit.WebWindow;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.mockito.ArgumentMatcher;
-import org.mockito.Mock;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.openqa.selenium.Capabilities;
-
-import org.springframework.core.env.Environment;
-import org.springframework.mock.env.MockEnvironment;
-
-import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.BDDMockito.given;
-import static org.mockito.BDDMockito.then;
-import static org.mockito.Mockito.mock;
-
-/**
- * Tests for {@link LocalHostWebConnectionHtmlUnitDriver}.
- *
- * @author Phillip Webb
- */
-@ExtendWith(MockitoExtension.class)
-class LocalHostWebConnectionHtmlUnitDriverTests {
-
- private final WebClient webClient;
-
- LocalHostWebConnectionHtmlUnitDriverTests(@Mock WebClient webClient) {
- this.webClient = webClient;
- given(this.webClient.getOptions()).willReturn(new WebClientOptions());
- given(this.webClient.getWebConsole()).willReturn(new WebConsole());
- WebWindow currentWindow = mock(WebWindow.class);
- given(currentWindow.isClosed()).willReturn(false);
- given(this.webClient.getCurrentWindow()).willReturn(currentWindow);
- }
-
- @Test
- void createWhenEnvironmentIsNullWillThrowException() {
- assertThatIllegalArgumentException().isThrownBy(() -> new LocalHostWebConnectionHtmlUnitDriver(null))
- .withMessageContaining("'environment' must not be null");
- }
-
- @Test
- void createWithJavascriptFlagWhenEnvironmentIsNullWillThrowException() {
- assertThatIllegalArgumentException().isThrownBy(() -> new LocalHostWebConnectionHtmlUnitDriver(null, true))
- .withMessageContaining("'environment' must not be null");
- }
-
- @Test
- void createWithBrowserVersionWhenEnvironmentIsNullWillThrowException() {
- assertThatIllegalArgumentException()
- .isThrownBy(() -> new LocalHostWebConnectionHtmlUnitDriver(null, BrowserVersion.CHROME))
- .withMessageContaining("'environment' must not be null");
- }
-
- @Test
- void createWithCapabilitiesWhenEnvironmentIsNullWillThrowException() {
- Capabilities capabilities = mock(Capabilities.class);
- given(capabilities.getBrowserName()).willReturn("htmlunit");
- given(capabilities.getBrowserVersion()).willReturn("chrome");
- assertThatIllegalArgumentException()
- .isThrownBy(() -> new LocalHostWebConnectionHtmlUnitDriver(null, capabilities))
- .withMessageContaining("'environment' must not be null");
- }
-
- @Test
- void getWhenUrlIsRelativeAndNoPortWillUseLocalhost8080() throws Exception {
- MockEnvironment environment = new MockEnvironment();
- LocalHostWebConnectionHtmlUnitDriver driver = new TestLocalHostWebConnectionHtmlUnitDriver(environment);
- driver.get("/test");
- then(this.webClient).should()
- .getPage(any(TopLevelWindow.class), requestToUrl(new URL("http://localhost:8080/test")));
- }
-
- @Test
- void getWhenUrlIsRelativeAndHasPortWillUseLocalhostPort() throws Exception {
- MockEnvironment environment = new MockEnvironment();
- environment.setProperty("local.server.port", "8181");
- LocalHostWebConnectionHtmlUnitDriver driver = new TestLocalHostWebConnectionHtmlUnitDriver(environment);
- driver.get("/test");
- then(this.webClient).should()
- .getPage(any(TopLevelWindow.class), requestToUrl(new URL("http://localhost:8181/test")));
- }
-
- private WebRequest requestToUrl(URL url) {
- return argThat(new WebRequestUrlArgumentMatcher(url));
- }
-
- public class TestLocalHostWebConnectionHtmlUnitDriver extends LocalHostWebConnectionHtmlUnitDriver {
-
- TestLocalHostWebConnectionHtmlUnitDriver(Environment environment) {
- super(environment);
- }
-
- @Override
- public WebClient getWebClient() {
- return LocalHostWebConnectionHtmlUnitDriverTests.this.webClient;
- }
-
- }
-
- private static final class WebRequestUrlArgumentMatcher implements ArgumentMatcher