首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MSHTML中的PopUp

MSHTML中的PopUp
EN

Stack Overflow用户
提问于 2011-07-30 23:44:10
回答 2查看 788关注 0票数 0

我正在开发一个web自动化应用程序。

每件事都运行得很好。现在我陷入了一个问题。

当用户点击链接时,打开具有输入字段和按钮新弹出窗口,

用户填写字段并按下按钮。

我想自动化这一点,但问题是,当我单击链接并显示弹出窗口时,没有触发任何Document_Completed事件。

因此,我无法解析这个弹出的html,并使其自动化。

有谁有什么有用的建议吗?

EN

回答 2

Stack Overflow用户

发布于 2012-01-09 23:06:54

这是非常棘手的。我自己也在做类似的事情。您首先需要检查对话框是Javascript还是messagebox。使用javascript对话框,您可以尝试这样做:http://msdn.microsoft.com/en-us/magazine/gg309183.aspx。根据作者的说法,它也可以与系统对话框一起工作,但在这方面不是很好。如果你不能做到这一点,你将不得不深入挖掘,并尝试通过Win32Api操作,据我所知。

系统对话框不是通常用于此类自动化的DOM的一部分。它没有ID,并且与操作系统的其余部分在一个单独的循环中运行(在非常低的级别上,它被故意与所有东西分开)。要进一步了解对话框以及它们在Windows中的工作方式,请查看以下内容:http://www.winprog.org/tutorial/dialogs.html

我没有一个完整的解决方案,但我正在努力。

票数 1
EN

Stack Overflow用户

发布于 2013-07-24 18:48:01

可以通过WindowFromPoint函数获得弹出窗口的句柄。然后你可以使用IAccessible接口来访问弹出窗口的元素。如下所示:

代码语言:javascript
复制
const uint OBJID_NATIVEOM = 0;
Guid  IID_IAcce = new Guid("{618736e0-3c3d-11cf-810c-00aa00389b71}");

IntPtr inpt = WindowFromPoint( p);

object ptr1 = null;
int l;

l = AccessibleObjectFromWindow(inpt, OBJID_NATIVEOM,    IID_IAcce.ToByteArray(), ref ptr1);
var acc = ptr1 as IAccessible;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6884215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档