【发布时间】:2011-10-18 17:15:28
【问题描述】:
我正在研究 pywinauto 和 pywin32。我想编写一个脚本来自动在 Firefox 中下载文件。在 Firefox 中下载文件时,它会显示一个弹出窗口,要求您打开或保存文件,您必须选择一个选项并按照步骤操作。如何使用 pywinauto 或 pywin32 在此弹出窗口中定位控件(项目)?
【问题讨论】:
标签: python firefox automation pywin32 pywinauto
我正在研究 pywinauto 和 pywin32。我想编写一个脚本来自动在 Firefox 中下载文件。在 Firefox 中下载文件时,它会显示一个弹出窗口,要求您打开或保存文件,您必须选择一个选项并按照步骤操作。如何使用 pywinauto 或 pywin32 在此弹出窗口中定位控件(项目)?
【问题讨论】:
标签: python firefox automation pywin32 pywinauto
您应该调查selenium ide。您可以使用它和 Python 来自动化大部分 Firefox。那里的论坛应该为您指明正确的方向。这个下载问题是一个长期存在的问题。
祝你好运!
【讨论】:
pywinauto 安装有一个与此相关的示例(SaveFromFirefox.py): http://pywinauto.googlecode.com/hg/pywinauto/docs/getting_started.html
【讨论】:
您可以查看麻省理工学院的Project SIKULI。有了它,您可以通过截屏来编写宏。项目截图使整个过程看起来很容易。它也是基于 Python 的,所以它可能是这项工作的编写工具。
此外,如果您可以控制相关计算机,则可以选中下载弹出窗口中显示“每次都执行此操作”的复选框(或任何确切的措辞)。也许这足以让工作变得更简单?
【讨论】:
对于最新的 Firefox 版本,您可以使用pywinauto 0.5.x(只需下载并运行python setup.py install 或运行pip install pywinauto)。 SaveFromFirefox.py 适用于 Win7。
有用的提示:
app.Dialog.PrintControlIdentifiers() 将打印对话框上控件的所有可能访问名称。app.Dialog.ControlName.WrapperObject(). ... 将为您提供可用于控件的最有用的方法列表。在生产代码中,可以省略 WrapperObject() 调用。【讨论】: