首页 > 解决方案 > Python 使用驱动程序 selenium 将焦点从 Web 浏览器切换回终端

问题描述

我正在使用 selenium webdriver 打开网页并填写表格。

无论如何在代码中间我需要在终端中提供输入数据

但焦点仍然停留在网络浏览器中,所以我需要手动将鼠标移回终端。

无论如何将焦点从网络浏览器切换回终端?
示例代码:

import time
from selenium import webdriver

driver = webdriver.Chrome()  # Optional argument, if not specified will search path.
driver.get('https://www.seleniumeasy.com/test/basic-first-form-demo.html')
search_box = driver.find_element_by_id('user-message')
search_box.send_keys('John Rambo')
time.sleep(5) # Let the user actually see something!
test=input('please provide a number 0-9: \n') # I'd like the focus to switch back to the terminal
driver.quit()

标签: pythonselenium-webdriver

解决方案


通过 Selenium - 不。它是一个通过 WebDriver 协议专门与浏览器通信的库。它只能向浏览器发送请求,浏览器可能(也可能不会)执行它们。

因此,它无法与外部的任何东西进行通信——操作系统及其应用程序切换例程,包括。
为此,您需要一些其他库,可以发出操作系统请求(切换应用程序)或模拟键盘/鼠标输入。但这些都取决于操作系统,例如 Windows、Mac 或 Linux 的不同。


推荐阅读