您好,
我正在使用 Selenium 在 Windows 系统上为我的项目自动打开新的浏览器标签。问题是,每当打开新标签时,不仅会自动切换到运行浏览器的虚拟桌面,而且还会干扰我在前台的工作。
这个行为是相当干扰的,因为我希望同时进行人工工作和自动化任务,而它们互不干扰。
我已经尝试了一些可能的解决方案,但没有成功。我想要的是让浏览器的自动操作在后台运行,不影响我的其他工作,而无需使用无头模式。
请问有人遇到过类似的问题吗?有没有可行的解决方案或建议?
非常感谢!
这么多硬条件无法妥协的话,只有一种方法,电脑开个虚拟机,在虚拟机部署代码,或者使用服务器。
浏览器默认需要GUI界面渲染,同时会有一些键盘鼠标操作,而你手动操作会干扰selenium执行
建议使用无头模式
如果真想 使用GUI模式且不干扰其他,可以使用SeleniumHub(Selenium GRID)
这个可以使用Docker 部署,然后webdriver 指向
options = webdriver.EdgeOptions() # 这个地方用哪个options,就会启动哪个浏览器(主从机都会启动)
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444',options=options) # 远程grid连接
driver.get('http://www.baidu.com')
【以下回答由 GPT 生成】
我了解您的问题。Selenium 默认情况下在打开新标签时会自动切换到虚拟桌面,这会造成干扰。如果您不想使用无头模式,可以尝试以下解决方案来阻止 Windows 虚拟桌面和前台工作的自动切换:
pip install pygetwindow pyautogui
from pygetwindow import Point, getWindowWithTitle
# 获取浏览器窗口句柄
browser_window_title = "您的浏览器窗口标题"
browser_window = getWindowWithTitle(browser_window_title)
browser_handle = browser_window.handle
import pyautogui
# 激活浏览器窗口
browser_window.activate()
# 将焦点切换回前台
pyautogui.hotkey("win")
这样,您的自动化脚本就会在后台运行,不会自动切换到虚拟桌面或干扰您的前台工作。
希望这个解决方案对您有帮助!如果还有其他问题,请随时提问。
【相关推荐】