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

使用Selenium Web Driver无法自动化视频div的video/object标签,求解决方案

针对视频Object标签的Web自动化解决方案

1. Selenium的操作思路

  • 直接定位Object标签本身:如果标签没有可识别的子元素,用find_element(By.TAG_NAME, "object")定位后,借助ActionChains模拟键盘快捷键(比如空格控制播放/暂停),或者模拟鼠标点击标签区域的坐标:
    from selenium.webdriver.common.action_chains import ActionChains
    
    obj_element = driver.find_element(By.TAG_NAME, "object")
    # 点击标签中心位置
    ActionChains(driver).move_to_element(obj_element).click().perform()
    
  • 若视频是Flash类插件内容,WebDriver无法穿透到插件内部,可结合桌面自动化工具(如AutoIt、PyAutoGUI),先通过Selenium获取标签的屏幕坐标,再模拟点击:
    import pyautogui
    
    obj_element = driver.find_element(By.TAG_NAME, "object")
    # 计算元素在屏幕上的绝对坐标
    screen_x = driver.execute_script("return arguments[0].getBoundingClientRect().left + window.scrollX;", obj_element)
    screen_y = driver.execute_script("return arguments[0].getBoundingClientRect().top + window.scrollY;", obj_element)
    # 点击视频区域内的任意点
    pyautogui.click(screen_x + 50, screen_y + 50)
    

2. 第三方库替代方案

  • Playwright:对现代浏览器支持更灵活,可直接执行JS脚本尝试调用视频的控制接口(如果页面暴露相关API):
    page.evaluate("""() => {
      const videoEmbed = document.querySelector('object embed');
      if (videoEmbed) videoEmbed.play();
    }""")
    
    也能像Selenium一样定位Object标签后模拟鼠标、键盘交互,稳定性优于旧版Selenium。

3. 特殊场景处理

如果Object标签加载的是完全封闭的插件内容,没有暴露任何Web层面的控制接口,只能依赖桌面级自动化工具模拟物理操作,或者检查页面是否有配套的控制按钮(比如外部的播放/暂停按钮),优先定位这些按钮进行操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 04:50:24