首页 > 解决方案 > 从 Selenium docker 容器访问 IIS 本地主机

问题描述

我在本地主机上的 Windows 机器上运行了一个 .net 应用程序。我还使用以下命令设置了一个 selenium docker 容器:

docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome

我可以通过将远程 webdriver 指向 localhost:4444 来访问容器

但是,当我运行测试并告诉 webdriver 导航到“ http://docker.for.win.localhost:51749 ”时,屏幕截图中出现连接被拒绝错误。

我看过类似的问题,但他们使用了不同的技术,这些解决方案对我不起作用,所以我认为我的问题可能略有不同,因为我的网站在 Visual Studio 的 IIS express 中运行。

我尝试通过 SSH 连接到容器并在同一个地址上执行 WGET,最终产生 400 错误,如下所示。

seluser@832dfa5515d6:/$ wget docker.for.win.localhost:51749
--2019-05-24 12:45:45--  http://docker.for.win.localhost:51749/
Resolving docker.for.win.localhost (docker.for.win.localhost)... 192.168.65.2
Connecting to docker.for.win.localhost (docker.for.win.localhost)|192.168.65.2|:51749... connected.
HTTP request sent, awaiting response... 400 Bad Request
2019-05-24 12:45:45 ERROR 400: Bad Request.

这个问题的原因可能是什么?

我正在使用带有引擎 18.09.2 的 Docker Desktop,它在 Windows 上运行(尽管我相信容器的内部是 linux)

更新

我刚试过:

 curl -i -X GET -H "Host: localhost:51749" docker.for.win.localhost:51749

这最终会返回网站的 HTML。所以看起来容器实际上可以看到它......只是硒不能。

标签: c#.netseleniumdockeriis

解决方案


推荐阅读