0

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

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

当用户单击链接时,会打开一个带有输入字段和按钮的新弹出窗口,

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

我想自动执行此操作,但问题是当我单击链接并显示弹出窗口时,不会触发 Document_Completed 事件。

所以我无法解析这个弹出的 html 并使其自动化。

任何机构有任何有用的建议吗?

4

2 回答 2

1

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

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

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

于 2012-01-09T15:06:53.650 回答
0

可以按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;
于 2013-07-24T10:48:00.930 回答