selenium webdriver C#多线程

selenium webdriver C#多线程,c#,multithreading,selenium,webdriver,C#,Multithreading,Selenium,Webdriver,Selenium WebDriver是否很好地支持多线程 我尝试在2-4打开的几个窗口中使用它,看起来浏览器窗口(Firefox)有时会被冻结 当一个线程启动时: _driver.FindElement(By.Id(id)).SendKeys("MyMessage"); 另一个线程同时尝试获取另一个页面元素状态 如何处理这件事 对于从不同线程访问同一页面,是否有任何建议 如何加快SendKeys方法的速度,并且在SendKeys尚未完成时不允许selenium访问页面?根据我的经验,selen

Selenium WebDriver是否很好地支持多线程

我尝试在2-4打开的几个窗口中使用它,看起来浏览器窗口(Firefox)有时会被冻结

当一个线程启动时:

_driver.FindElement(By.Id(id)).SendKeys("MyMessage");
另一个线程同时尝试获取另一个页面元素状态

如何处理这件事

对于从不同线程访问同一页面,是否有任何建议


如何加快SendKeys方法的速度,并且在SendKeys尚未完成时不允许selenium访问页面?

根据我的经验,selenium WebDriver非常支持多线程(除非您使用IE)。
从您的代码来看,您似乎在所有线程中都使用了相同的驱动程序实例-确保每个线程都有自己的WebDriver实例。

如果这没有帮助,请说明原因,而不是简单地否决投票。这对我们所有人来说都是一个学习的过程。为了它的价值,我正在处理同样的问题。我已经尝试使用单独的WebDriver实例(和/或threadstatic字段)来实现这一点。到目前为止,这种方法已经导致了访问冲突(IE)和Selenium异常(FF),这是由多个线程(a)访问同一个隐式WebDriver服务器,或b)尝试启动多个WebDriver服务器的问题引起的。我认为成功的方法将需要实例化一个共享服务器实例&将每个线程的驱动程序实例都指向这个实例,但我还没有解决它。有趣的是,我已经运行了一个多线程WebDriver场景有一段时间了,事情一定发生了变化(这解释了投票结果)。谢谢你的输入,我会做一些挖掘,看看我是否能让它再次工作。我也发布了一个相关的问题;我已经改变了一些东西&我认为ThreadLocal现在大部分都在做这项工作,但是有一些奇怪的地方,死FF实例让我陷入(并行)循环中。;)我一直想为webdriver实现心跳功能来处理死机的浏览器会话,也许现在是时候了。。。