watin - 将 Watin 连接到现有浏览器总是超时

标签 watin

我正在尝试将 Watin 附加到 Internet Explorer 9 的现有实例。问题是无论我尝试什么,它似乎都会超时。我使用的代码是:

Settings.AttachToBrowserTimeOut = 240;
Settings.WaitUntilExistsTimeOut = 240;
Settings.WaitForCompleteTimeOut = 240;   

Browser.AttachTo<IE>(Find.ByTitle("Google"), 240);

此代码位于 Watin guide here 中。减去我尝试过的超时调整。我也尝试过将代码设置为运行 x86 而不是任何 cpu,但仍然无法正常工作。任何想法我做错了什么。

最佳答案

您编写的方法缺少单线程ApartmentState。解决此问题的最简单方法是在您尝试使用该代码的方法上方添加 [STAThread]

例如:

//[STAThread]
static void Main(string[] args)
{
    IE.AttachTo<IE>(Find.ByTitle("Google"), 5);
}

就像你所描述的那样。当您取消注释 [STAThread]

[STAThread]
static void Main(string[] args)
{
    IE.AttachTo<IE>(Find.ByTitle("Google"), 5);
}

它按预期工作。

关于watin - 将 Watin 连接到现有浏览器总是超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10993477/

相关文章:

c# - WatiN 引用的程序集错误

c# - WatIn SelectList().SelectByValue() 返回错误运行脚本失败

watin - 如何用watin查是element "hidden"

从 CruiseControl 运行时,WAIN 测试失败并出现 TimeoutException

c# - WatiN:尝试将文本 ("WatiN") 键入 Google 的搜索文本框时出错

windows - 无法加载文件或程序集 Microsoft.mshtml

c# - WatiN 和 IE9 关于多个对话框的问题

c# - 等待 "Unable to cast COM object"异常

watin - 使用 WatiN 自动完成下拉菜单测试

c# - Watin 触发的 onchange 事件中的对话框