我不确定这个问题是否是由于我通过引用传递驱动程序这一事实引起的。当浏览器需要很长时间才能加载或永久加载时,我想退出它,然后创建另一个驱动程序和浏览器实例。我像这样通过引用传递驱动程序;
...
ScrapeCase(ref caseLookUpDriver, lastCase);
...
我的ScrapeCase
方法看起来像这样;
private void ScrapeCase(ref ChromeDriver driver, SQLiteDb.Case lastCase)
{
for (int attempts = 0; attempts < 3; attempts++)
{
try
{
driver.Navigate().GoToUrl(lastCase.CaseType.SummariesURL);
...
break;
}
catch (Exception e)
{
if (driver != null) { driver.Quit(); }
driver = new ChromeDriver(options);
}
}
}
使用此代码,驱动程序或浏览器永远不会被销毁,而是我得到的是每次发生异常时反复打开的新浏览器窗口。
这个想法告诉方法ScrapeCase
使用哪个驱动程序,我想我可以通过引用传递来做到这一点。