You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium检测指定元素是否被用户点击后再执行输入操作

实现方案

核心逻辑是利用浏览器原生的DOM聚焦状态判断:用户点击输入框后,该元素会成为页面的当前激活元素,我们只需要轮询检测这个激活元素是否为目标搜索栏,匹配成功后再执行输入操作即可,比依赖鼠标坐标判断的方案稳定性高很多。

可运行代码示例
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time

# 自动配置Chrome驱动,无需手动下载
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://www.google.com")
# 定位谷歌搜索栏元素
search_bar = driver.find_element(By.XPATH, '/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input')

# 检测超时设置,单位秒
timeout = 30
start_time = time.time()

while time.time() - start_time < timeout:
    # 调用JS获取当前页面激活的元素
    active_element = driver.execute_script("return document.activeElement")
    # 判断激活元素是否为搜索栏
    if active_element == search_bar:
        search_bar.send_keys("yeah! We did it!")
        break
    # 每0.5秒检测一次,避免占用过多资源
    time.sleep(0.5)
注意事项
  • 提前安装依赖:pip install selenium webdriver-manager
  • 可以根据实际需求调整轮询间隔和超时时间
  • 如果需要适配其他网站的搜索栏,只需要修改搜索栏的定位规则即可
  • 原生JS判断聚焦的逻辑不受页面缩放、布局变动的影响,兼容性更强

内容的提问来源于stack exchange,提问作者rudransh_ethnic17

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 08:48:03