【发布时间】:2014-11-17 03:48:03
【问题描述】:
在 C# 中,我正在使用 InternetExplorer.Application(进程外 COM 服务器)编写一些自动化代码。
我有一个“dynamic browser”变量持有对此自动化对象的引用并且能够访问
dynamic body = browser.document.body;
browser.document.getElementById("someInput").value = "test";
但我完全无法访问窗口对象,无论是通过
browser.document.parentWindow 或 browser.document.defaultView。
例如:
browser.document.parentWindow.execScript("alert('hello')");
或
dynamic window = browser.document.parentWindow;
当我尝试访问像上面这样的窗口对象(或使用 defaultView)时,我总是收到异常消息“错误:指定的转换无效。”这是为什么呢?
在 SA 上还有一个与此类似的问题,但接受的答案是关于线程问题,我认为这是使用 WebBrowser 控件的 inproc 服务器,并且我再次使用的是 out 或 process 服务器,所以我不'不相信任何线程问题适用于我的问题。
技术细节:Windows 7 64 位、Internet Explorer 11、.NET 4.0 控制台应用程序
【问题讨论】:
-
你查过
browser到底是哪个对象吗?
标签: c# internet-explorer automation