2012-04-22 57 views
2

Selenium WebDriver是否支持多线程?selenium webdriver C#多线程

我试图用它打开2-4的几个窗口,它看起来像浏览器窗口(Firefox)有时冻结。

当一个线程开始:

_driver.FindElement(By.Id(id)).SendKeys("MyMessage"); 

,并在同一时间另一个线程试图获取另一个页面元素的状态。

如何处理这个?

有没有从不同的线程访问同一页面的任何recomendations?

如何加快SendKeys方法,并且不允许硒访问页面,而SendKeys仍未完成?

回答

2

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

+1

如果这没有帮助,请说出为什么,而不是简单地向下投票。这是我们所有人的学习过程。 – Anders 2012-04-23 15:28:01

+0

为了什么是值得的,我正在处理同样的问题。我试过使用单独的WebDriver实例(和/或线程静态字段)来完成这项工作。到目前为止,这种方法导致了AccessViolations(IE)和Selenium异常(FF),这些异常源于多线程的问题:a)访问相同的隐式WebDriver服务器,或者b)尝试启动多个WebDriver服务器。我认为成功的方法将需要实例化一个共享服务器实例并指出每个线程的驱动程序实例,但我还没有完成。 – 2012-04-25 20:27:44

+0

有趣的是 - 自从我运行一个多线程的WebDriver场景以来,已经有一段时间了,事情必定发生了变化(这解释了downvote)。感谢您的意见,我会做一些挖掘工作,看看能否再次开展工作。 – Anders 2012-04-26 01:01:10