【发布时间】:2015-08-11 07:09:30
【问题描述】:
我有一个使用 selenium 自动化网页的 python 脚本,将焦点从需要用户输入的终端上移开。
python 中有没有以编程方式将焦点切换回终端?
如果重要的话,我将在 Windows 7 上的 Windows 命令提示符中运行我的程序,但跨平台答案将是最有用的。
尝试
查看 win32 API 的 pywin32 包绑定我有以下内容:
import win32console
import win32gui
from selenium import webdriver as wd
d = wd.Firefox()
win32gui.SetFocus(win32console.GetConsoleWindow())
win32gui.FlashWindow(win32console.GetConsoleWindow(), False)
input('Should have focus: ')
SetFocus 导致错误 pywintypes.error: (5, 'SetFocus', 'Access is denied.'),因为 Microsoft 删除了从另一个应用程序获取焦点的能力。
FlashWindow 似乎什么也没做。
【问题讨论】:
-
javascript提示不是用户输入的选项吗?
-
@Saifur 不是真的,我的脚本是用 python 编写的(所以很难让它在浏览器开发者控制台中运行)并且自动化涉及关闭和打开多个浏览器,它们都带有自己的开发者控制台.理想情况下,我正在寻找一个可以从 python 执行的单个 python 包或脚本,它将焦点带回终端。
-
为什么不使用虚拟机来托管所有与硒相关的活动?也许使用 selenium grid 或 ssh 来启动任何 selenium 脚本?
-
执行
win32gui.SetFocus(win32console.GetConsoleWindow()),我收到以下错误:“pywintypes.error: (5, 'SetFocus', 'Access is denied.')”。看来你没有..知道为什么吗? (我运行 Python 2.7+)
标签: python selenium windows-7 cmd