我正在尝试使用testcontainers java 库来测试使用 docker-compose 定义的 Web 应用程序。
我可以成功地从 DockerComposeContainer 公开服务并使用 RestTemplate 查询它们。
String url = format(
"http://%s:%s",
environment.getServiceHost("web_1", 8080),
environment.getServicePort("web_1", 8080)
);
ResponseEntity<String> response = template.getForEntity(url, String.class);
但是,当我尝试通过 webdriver 访问该服务时,我收到一个连接被拒绝错误 - “localhost 拒绝连接”。
@Rule
public BrowserWebDriverContainer chrome = new BrowserWebDriverContainer()
.withDesiredCapabilities(DesiredCapabilities.chrome());
RemoteWebDriver driver = chrome.getWebDriver();
driver.get(url);
我认为 webdriver 'localhost' 仍然是其容器内的 localhost,而不是暴露服务的主机。
如何让 webdriver 访问主机网络以访问暴露的服务?