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

使用Selenium自动化创建Drupal widget时点击添加按钮无响应如何解决

解决步骤

Drupal后台的操作按钮大多绑定了AJAX交互逻辑,Selenium原生点击经常无法触发对应事件,可按以下步骤修复:

  • 引入显式等待逻辑,确保按钮完全渲染、可交互后再执行操作,避免元素未加载完成导致的点击失效
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

id_add_widget = 'edit-field-content-add-more-add-modal-form-area-add-more'
# 最长等待10秒,可根据页面加载速度调整
wait = WebDriverWait(driver, 10)
widget_button = wait.until(EC.element_to_be_clickable((By.ID, id_add_widget)))
  • 优先使用JS触发点击,规避Selenium原生click无法触发Drupal事件绑定的问题
# 先将按钮滚动到可视区域,避免元素遮挡导致的交互失败
driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", widget_button)
# 用JS执行点击操作
driver.execute_script("arguments[0].click();", widget_button)
  • 点击后添加等待逻辑,确认widget选择列表加载完成后再执行选择操作
# 可根据实际页面的列表元素规则修改定位逻辑
widget_select_list = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.ui-dialog .field-add-more-submit')))
# 后续可直接操作列表内的对应widget选项

页面参考

当前需要点击的添加widget按钮样式:
add widget button
点击后预期唤起的widget选择列表样式:
list widget

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:27:00