发布后,Selenium chromedriver浏览器无法打开

时间:2018-09-22 15:36:22

标签: c# asp.net-mvc selenium selenium-webdriver selenium-chromedriver

在我的MVC Web应用程序中,我正在使用Selenium C#Web驱动程序从HTML文件读取一些数据。通过VS(通过chrome打开HTML文件并正确读取HTML)执行应用程序时,我的应用程序可以正常工作。但是在我将应用程序发布并托管在IIS服务器中后,HTML文件无法通过Chrome浏览器打开。 (浏览器未打开),这是我的代码。

public class CribController : Controller
{
    public ActionResult Index()
    {
        try
        {

        IWebDriver driver = new ChromeDriver(@"C:\Selenium\");

        driver.Navigate().GoToUrl("D:/Crib/toEdit_Foramted V2.html");
        string text = driver.Title;

        var table = driver.FindElement(By.Id("reportcontainerstyle-Ver2"));
        var rowsss = table.FindElements(By.TagName("tr"));

        //To get days arrears details
        var mainTable = driver.FindElement(By.Name("ConsumerCreditDetails_Version3"));
        var subTables = mainTable.FindElements(By.Id("bandstyle-Ver2"));

            var rows = driver.FindElements(By.XPath("//table[.//td[normalize-space(.)='Credit Facility (CF) Details']][1]/following-sibling::table[1]//tr[not(@type='table-header')]"));

            foreach (IWebElement row in rows)
            {
                //Some logic here
            }
            Thread.Sleep(3000);
            driver.Close();
        }
        catch (Exception ex)
        {
            Logger.LogWriter("WebApplication2.Controllers", ex, "CribController", "Index");
            Console.WriteLine(ex);
        }
        return View();
    }
}

为什么这在发布后不起作用。我该如何解决?

1 个答案:

答案 0 :(得分:0)

我认为我们需要更多有关抛出错误的信息。

Selenium GitHub存储库中存在一个类似的问题,这是响应https://github.com/seleniumhq/selenium/issues/1125#issuecomment-257258747

您可以这样声明驱动程序:

var driverService = ChromeDriverService.CreateDefaultService();
driverService.HideCommandPromptWindow = true;
var options = new ChromeOptions();
options.AddArguments(new List<string> { { "start-maximized" } });
IWebDriver driver;
driver = new ChromeDriver(driverService, options);

其他可能有用的方法是:在同一解决方案中,尝试为Selenium代码和执行创建控制台应用程序,从(MVC项目的)控制器调用其构造函数。