我在带有IIS的Windows Server 2016上运行chromedriver,我安装了我的测试项目并使用MVC5 API调用它。这一切似乎都很好,但是chromedriver和chrome.exe似乎只是作为后台进程打开。
相同的代码在本地打开这些正常,我也没有使用任何驱动程序标志进行无头浏览。如果我返回驱动页面源我可以看到chromedriver去了google并在我的API中返回了正确的html。
它对于谷歌或我们的应用程序的普通/非无头测试无效。
var driver = x.StartWebDriver();
driver.Manage().Window.Maximize();
driver.Navigate().GoToUrl("http://www.google.com");
return driver.PageSource;
有什么想法吗?
答案 0 :(得分:0)
我遇到了同样的问题,这就是我要解决的方法:
打开命令提示符并导航到您的ChromeDriver位置。
执行chromedriver.exe,您将看到以下消息。 image here
在上图中,您看到chrome驱动程序正在侦听端口9515。
现在如下更改代码,重新生成并调用api来执行测试。
ChromeOptions选项=新的ChromeOptions();
//在此处设置您的chromeoptions
Uri uri =新的Uri(“ http://localhost:** 9515 ”);
_driver =新的RemoteWebDriver(uri,选项);
答案 1 :(得分:0)
打开chrome驱动并记下端口号(例如:5353)
在Java中:
System.setProperty(chromeDriverName, chromeDriverLocation);
ChromeOptions options = new ChromeOptions();
URL uri = new URL(chromeDriverPort);//http://localhost:5353
WebDriver driver = new RemoteWebDriver(uri, options);
您的问题在服务器上得到解决。