在我的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();
}
}
为什么这在发布后不起作用。我该如何解决?
答案 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项目的)控制器调用其构造函数。