Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么硒+;Firefox在加载页面时冻结?_C#_Firefox_Selenium_Selenium Webdriver - Fatal编程技术网

C# 为什么硒+;Firefox在加载页面时冻结?

C# 为什么硒+;Firefox在加载页面时冻结?,c#,firefox,selenium,selenium-webdriver,C#,Firefox,Selenium,Selenium Webdriver,我正在用C#运行最新版本的Firefox和Selenium。我正在使爬虫程序自动化,以便在web应用程序中查找数据。服务器速度非常慢,所以我不得不添加许多等待,再加上使用线程睡眠进行初始等待 因此,我的爬虫程序得到一个项目列表,然后迭代:它必须通过单击每个项目的id来加载每个项目的详细信息。然后它返回(这些导航控件都内置在web应用程序中,没有使用浏览器控件),漂洗并重复。服务器在加载详细信息和返回时显示进度微调器。爬虫每次到达相同的项目并锁定,例如:进度微调器冻结和Firefox崩溃 我尝试了

我正在用C#运行最新版本的Firefox和Selenium。我正在使爬虫程序自动化,以便在web应用程序中查找数据。服务器速度非常慢,所以我不得不添加许多等待,再加上使用线程睡眠进行初始等待

因此,我的爬虫程序得到一个项目列表,然后迭代:它必须通过单击每个项目的id来加载每个项目的详细信息。然后它返回(这些导航控件都内置在web应用程序中,没有使用浏览器控件),漂洗并重复。服务器在加载详细信息和返回时显示进度微调器。爬虫每次到达相同的项目并锁定,例如:进度微调器冻结和Firefox崩溃

我尝试了几种不同的方法,包括使用后台线程、删除所有cookie,以及检查我的内存是否超载。我没有注意到内存中有任何峰值(在任务管理器中)。我还尝试重新启动web驱动程序,但效果并不理想,因为这是一个web应用程序

有什么是我忽略的吗?(我尽量说得清楚详细)


忘了提及,当我停止程序时,页面“解冻”,我可以从那一点继续使用。

这是C#selenium web bindings 2.39及更早版本的一个已知问题。这应该在2.40中修复。问题在于从firefox重定向控制台日志时web绑定代码中出现死锁。如果升级到2.40,应该可以解决这个问题。有关更多信息,请参见标题“2014年2月25日更新”

如果它不太重AJAX和JavaScript,你可以研究PhantomJS来加速它。速度不是问题,如果我没有添加睡眠来增加显式等待的初始延迟,那么服务器只会在页面未加载且找不到元素时给我一个错误页面。而且,它是用js和AJAX编写的。事实证明,出于某种原因,Firefox似乎可以做到这一点,但IE很好。我将改用IE,但我仍然对Firefox失败的原因感到好奇。我还没有对此进行测试,因为我已经从使用Selenium切换到只使用WebBrowser控件,但这似乎是一个合理的解释,谢谢。