我有一个非常奇怪的问题(我非常怀疑它会在IIS方面(。
我有.NETCORE6
应用程序,它通过IHostedService
使用Selenium。
有一些案例是有效的:
- 如果我从Visual Studio的IIS本地启动应用程序,浏览器就会打开
- 如果我从CMD启动应用程序(作为自托管(,浏览器将打开
- 如果我从服务器上的CMD(作为自托管(启动应用程序,浏览器就会打开
但是
如果我从服务器上的IIS启动应用程序,测试正在运行(看起来像在无头模式下(,但浏览器不会显示。
有人有IIS的经验吗?
我尝试了不同的IIS池标识,并以DefaulPoolIdentity
、LocalService
、LocalSystem
的身份执行了该应用程序,甚至以拥有管理员权限的用户的身份执行,但浏览器仍然是隐藏的。
附加说明:
- 我还检查了浏览器是否以最大化模式启动,并在正确的屏幕上启动
所以问题是如何在打开web浏览器的情况下通过IIS从服务器启动应用程序?(肯定有解决方案吧?(
Lex Li的答案是正确的,所以如果其他人找到了答案,请阅读文章https://blog.lextudio.com/web-application-differences-in-visual-studio-and-iis-60fec7e311b3
如果手动启动chromedriver,然后使用Selenium Grid调用它,浏览器就会打开。
驱动程序配置类似
var uri = new Uri("http://localhost:9515/"); --my chromedriver uri
var driver = new RemoteWebDriver(uri, new ChromeOptions());
...