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

如何点击其他页面classname类型下拉菜单并获取值回传原页面

实现方案(基于Playwright/Puppeteer,与你已使用的page.click语法兼容)

核心思路

按「触发一级下拉→触发二级下拉→提取li值→跨页传值」四个步骤执行,全程用class选择器定位元素即可。

具体实现步骤

  • 步骤1:触发hover类型的一级下拉菜单
    用class选择器定位触发元素,执行hover操作后等待下拉窗口渲染完成:
    # 替换为你实际的一级触发元素class名
    page.hover('.first-level-trigger')
    # 替换为你实际的下拉窗口class名,等待其可见
    page.wait_for_selector('.dropdown-window', state='visible', timeout=3000)
    
  • 步骤2:触发二级下拉菜单
    同理用class定位二级下拉的触发元素,触发后等待二级下拉的li元素加载完成:
    # 替换为你实际的二级触发元素class名,若需点击触发把hover换成click即可
    page.hover('.second-level-trigger')
    # 替换为你实际的二级下拉列表class名,等待li元素可见
    page.wait_for_selector('.second-dropdown-list li', state='visible', timeout=3000)
    
  • 步骤3:提取所有li标签的值存入列表
    li_value_list = page.locator('.second-dropdown-list li').all_text_contents()
    # 可选:去除空白项和首尾空格
    li_value_list = [item.strip() for item in li_value_list if item.strip()]
    
  • 步骤4:将列表值传回前一个页面
    如果你是多标签页场景,提前保存前一个页面的page实例即可直接注入数据:
    # 假设你打开新标签页时已经保存了前页实例为prev_page
    prev_page.evaluate("""
      (receivedList) => {
          // 此处可自定义前页接收逻辑,比如存入全局变量、填充到表单等
          window.receivedDropdownList = receivedList
      }
    """, li_value_list)
    
    如果是跨域页面无法直接传值,可将列表序列化后存入localStorage,两个页面监听存储变化即可完成数据传递。

注意事项

  • class选择器的写法为.类名,和你已掌握的id选择器#id名使用逻辑完全一致,替换为你实际HTML中的对应class名即可
  • 若hover触发逻辑不生效,可替换为page.click()触发,适配不同页面的交互规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:45:01