C#chrome驱动程序仅在IIS / Windows Server 2016上作为后台进程打开

时间:2017-08-09 14:52:39

标签: c# google-chrome selenium selenium-webdriver selenium-chromedriver

我在带有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;

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,这就是我要解决的方法:

  1. 打开命令提示符并导航到您的ChromeDriver位置。

  2. 执行chromedriver.exe,您将看到以下消息。 image here

    在上图中,您看到chrome驱动程序正在侦听端口9515。

  3. 现在如下更改代码,重新生成并调用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);

您的问题在服务器上得到解决。