WatiN.Core.dll 中发生了 'WatiN.Core.Exceptions.RunScriptException' 类型的未处理异常

An unhandled exception of type 'WatiN.Core.Exceptions.RunScriptException' occurred in WatiN.Core.dll

'WatiN.Core.Exceptions.RunScriptException' 类型的未处理异常发生在 WatiN.Core.dll 附加信息:RunScript 失败....任何人都可以解决此错误吗???

browser.GoTo("http://www.errajatsharma.com/invoice/");
browser.TextField(Find.ByName("email")).TypeText("wolverine.rajat@gmail.com");            
browser.TextField(Find.ByName("password")).TypeText("98983662634");
browser.Div(Find.ByName("submit")).Click();

当调试器到达 typetext 事件时出现上述错误...有人可以帮我吗???

好的,经过您的编辑,这现在更有意义了。您发布的代码似乎是您的全部代码。在此行之间:

browser.GoTo("http://www.errajatsharma.com/invoice/");

这行

browser.TextField(Find.ByName("email")).TypeText("wolverine.rajat@gmail.com");

browser.TextField(Find.ByName("password")).TypeText("98983662634");

程序需要等到页面加载(想一想,加载该网页可能需要 4 秒、1 秒、2 分钟等)才能等待(无论那是什么时间)watin以下代码:

browser.WaitForComplete();

所以在中间添加这行代码:

browser.GoTo("http://www.errajatsharma.com/invoice/");
browser.WaitForComplete();                                                                                  
browser.TextField(Find.ByName("email")).TypeText("wolverine.rajat@gmail.com");
browser.TextField(Find.ByName("password")).TypeText("98983662634");
browser.Div(Find.ByName("submit")).Click();

如果这是你的问题,你现在应该可以使用这些凭据登录(我刚刚尝试过,但这些凭据不是真实的,因此你需要用你的真实登录详细信息替换它们)。

编辑:

试试这个:

browser.GoTo("http://www.errajatsharma.com/invoice/");
browser.WaitForComplete();                                                                                  
TextField email = browser.TextField(Find.ByName("email"));
if(email.Exists){
  email.TypeText("wolverine.rajat@gmail.com");
}else{
  MessageBox.Show("Can't find email textbox");
}

如果您仍然收到消息 "Can't find email textbox",则电子邮件不在该页面上。你也可以试试

email.Value = "Something@something.com";

编辑 2:

我只是运行这个代码:

browser.GoTo("http://www.errajatsharma.com/invoice/");
browser.WaitForComplete();              browser.TextField(Find.ByName("email")).TypeText("wolverine.rajat@gmail.com");               browser.TextField(Find.ByName("password")).TypeText("98983662634");
browser.Button(Find.ByName("submit")).Click();

和预期的 运行(唯一的区别是您点击的是 DIV(名为提交)而不是 DIV 内的按钮(也名为提交) .如果仍然失败,则说明您遇到了其他问题(尝试更新的 IE 版本等)

我使用的是错误版本的 Internet Explorer...watin 仅支持 IE 6,7 和 8 版本...现在我使用的是 firefox 2.0 版...而 watin 最多支持 3.6 版.. 。这就是为什么它在 watin.core.dll 中给出错误...其余代码相同...无论如何感谢您的帮助伙伴! :)