我正在开发一个web自动化应用程序。
每件事都运行得很好。现在我陷入了一个问题。
当用户点击链接时,打开具有输入字段和按钮新弹出窗口,
用户填写字段并按下按钮。
我想自动化这一点,但问题是,当我单击链接并显示弹出窗口时,没有触发任何Document_Completed事件。
因此,我无法解析这个弹出的html,并使其自动化。
有谁有什么有用的建议吗?
发布于 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
我没有一个完整的解决方案,但我正在努力。
发布于 2013-07-24 18:48:01
可以通过WindowFromPoint函数获得弹出窗口的句柄。然后你可以使用IAccessible接口来访问弹出窗口的元素。如下所示:
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;https://stackoverflow.com/questions/6884215
复制相似问题