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

如何用Selenium Python实现Maximo系统子菜单悬停点击及JS调用?

解决Maximo Web自动化的鼠标悬停子菜单及查看菜单JS代码问题

嘿,我来帮你搞定Maximo自动化里的这两个问题!下面分两部分给你详细说明:

一、实现鼠标悬停子菜单并点击操作

Maximo的子菜单通常需要鼠标悬停父菜单才会显示,这时候你需要用Selenium的ActionChains类来模拟真实的鼠标动作,再结合WebDriverWait处理动态加载的元素(避免元素未就绪就点击的错误)。

步骤&代码示例

首先补充导入需要的模块:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

然后在你的登录代码之后,添加悬停点击的逻辑:

# 初始化浏览器(这里用Chrome举例,你可以换成其他浏览器)
driver = webdriver.Chrome()

# 你已经实现的登录代码放在这里,比如输入用户名密码、点击登录按钮...

# 1. 定位父菜单元素(请根据实际页面的元素属性调整定位方式,比如XPath、ID、CSS选择器)
parent_menu = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//div[contains(text(), '工作台')]"))
)

# 2. 模拟鼠标悬停在父菜单上
actions = ActionChains(driver)
actions.move_to_element(parent_menu).perform()

# 3. 等待子菜单加载可见,然后点击
sub_menu = WebDriverWait(driver, 10).until(
    EC.visibility_of_element_located((By.XPATH, "//div[contains(text(), '资产')]"))
)
sub_menu.click()

注意点

  • 一定要用WebDriverWait等待元素,不要用time.sleep(),这样更稳定且高效
  • 如果悬停后子菜单还是没出来,可以尝试在perform()之后加一个短暂的等待,或者检查父菜单的定位是否准确
  • 定位元素时,尽量用稳定的属性(比如ID、唯一的文本内容),避免用动态变化的XPath或CSS

二、查看Maximo菜单对应的JavaScript代码

Maximo的菜单大多是通过JavaScript触发的,你可以用浏览器开发者工具轻松找到对应的代码,步骤如下:

  1. 打开浏览器开发者工具(按F12或者右键菜单选择「检查」)
  2. 切换到Elements标签页,用左上角的「选择元素」工具点击目标菜单,找到对应的DOM元素
  3. 查看元素的属性:
    • 如果菜单有onclick、onmouseover这类属性,里面直接写了触发的JS代码或函数调用(比如javascript:openWorkCenter('asset'))
    • 如果事件是动态绑定的,切换到Event Listeners标签页,找到对应的事件(比如click、mouseenter),展开后点击函数名就能跳转到Sources标签页查看完整的JS代码
  4. 你还可以在控制台(Console标签)里用代码查看元素的事件绑定:
    // 先定位菜单元素(请根据实际元素调整选择器)
    let targetMenu = document.querySelector("div[contains(text(), '工作台')]");
    // 查看该元素的所有事件绑定
    getEventListeners(targetMenu);
    

额外技巧

如果找到菜单对应的JS函数,你甚至可以直接在Selenium里执行这个JS函数,有时候比模拟鼠标操作更稳定:

# 直接执行菜单对应的JS代码
driver.execute_script("openWorkCenter('asset');")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:58:50