Python:在OS X中激活窗口



我正在运行OS X 10.11,并且我已经使用PythonSelenium创建了一个web scraper。scraper使用Firefox作为浏览器来收集数据。

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

当我离开以Firefox为活动窗口的电脑时,当我返回时,我经常发现活动窗口的焦点已经变为其他内容。某些过程正在窃取窗口焦点。

有没有一种方法可以让我用程序告诉操作系统激活Firefox窗口?如果是这样的话,我可以在脚本中的每个关键操作之前告诉脚本这样做。

最好,这是我想使用Python实现的。但是,启动第二个AppleScript来完成这一特定任务也可能是一个解决方案。

注意:Atm,我不打算重写脚本以使用无头浏览器,只是通过强制激活窗口来使其工作。

您可以在python中使用AppleEvents导入模块Carbon。这里是一个python脚本通过其bundle标识符激活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)

tell application "Firefox" to activate

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

最新更新