Python:在OS X中激活窗口

时间:2016-01-10 12:52:36

标签: python macos applescript

我正在运行OS X 10.11,我使用PythonSelenium创建了一个网络抓取工具。刮刀使用Firefox作为浏览器来收集数据。

Firefox窗口必须在所有关键步骤中保持活动状态,以便刮刀工作。

当我以Firefox作为活动窗口离开计算机时,当我返回时,我经常发现活动窗口焦点已更改为其他内容。有些过程正在窃取窗口焦点。

有没有办法可以编程方式告诉操作系统激活Firefox窗口?如果是这样,我可以告诉脚本在脚本中的每个关键操作之前执行此操作。

最好,这是我想用Python实现的。但启动辅助AppleScript来执行此特定任务也可能是一种解决方案。

注意: Atm,我没有考虑重写我的脚本以使用无头浏览器 - 只是通过强制激活窗口使其工作。

2 个答案:

答案 0 :(得分:3)

您可以在python中使用AppleEvents导入模块Carbon。这是一个python脚本通过其包标识符激活FireFox的示例。

from Carbon import AppleEvents 
from Carbon import AE
target = AE.AECreateDesc(AppleEvents.typeApplicationBundleID, "org.mozilla.FireFox")
activateEvent  = AE.AECreateAppleEvent( 'misc', 'actv', target, AppleEvents.kAutoGenerateReturnID, AppleEvents.kAnyTransactionID)
activateEvent.AESend(AppleEvents.kAEWaitReply, AppleEvents.kAENormalPriority, AppleEvents.kAEDefaultTimeout)

答案 1 :(得分:1)

tell application "Firefox" to activate

是在AppleScript中执行此操作的方法