0

我收到以下错误:

值不能为空。参数名称:domContainer

在我程序的这个特定行中:

if (firstBrowser.Buttons.Count > 0)

firstBrowser 是一个 IE 对象。
奇怪的是,我创建了几个线程,并且在每个线程中打开 IE 对象并加载类似的 URL,但我只在它们的 1 或 2 个中收到此错误。
编辑:
这是出现错误的行之前的代码:

var firstBrowser = new IE()
firstBrowser.GoTo(slot_url);
firstBrowser.BringToFront();
Console.WriteLine("browser #" + thread_index + " was loaded");


解决方案:
我在错误行之前检查了 domContainer 的值,如果值为 null,我再次加载页面:

if (firstBrowser.DomContainer == null)
      firstBrowser.GoTo(slot_url);
if (firstBrowser.Buttons.Count > 0)
 {
   *
   *
   *
 }
4

2 回答 2

0

为什么不这样使用:

public void SearchForWatiNOnGoogle()
{
  using (var browser = new IE("http://www.google.com"))
  {
    browser.TextField(Find.ByName("q")).TypeText("WatiN");
    browser.Button(Find.ByName("btnG")).Click();

    Assert.IsTrue(browser.ContainsText("WatiN"));
  }
}
于 2013-11-05T13:05:05.593 回答
0

你的构造函数是空的,没有给出地址。

 var firstBrowser = new WatiN.Core.IE();
于 2013-11-05T13:31:24.553 回答