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

Selenium VBA Excel:点击非标准按钮打开数据录入表单求助

解决方案:点击Vuetify卡片触发表单打开

定位分析

你提供的元素是Vuetify框架的v-card组件,带有v-card--link类,框架会为这类组件绑定点击事件,实现类似按钮的交互逻辑。以下是几种可靠的定位和点击实现方式:

优先使用测试属性定位(稳定性最高)

元素内层带有data-qa="type-physical"属性,这是专为自动化测试预留的标识,是最优先的定位选择:

Selenium(Python)

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

driver = webdriver.Chrome()
# 等待元素加载完成并可点击后触发点击
target_card = WebDriverWait(driver, 10).until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, '[data-qa="type-physical"]'))
)
target_card.click()

Playwright(Python)

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.click('[data-qa="type-physical"]')
    browser.close()

备选定位方案

如果data-qa属性不可用,可通过以下方式定位元素:

  • 通过外层卡片的自定义业务类:By.CLASS_NAME, "type-select"(Selenium)
  • 通过卡片内的文本内容:page.click('text="Físico"')(Playwright),或By.XPATH, '//p[text()="Físico"]/ancestor::div[contains(@class,"type-select")]'(Selenium)

解决点击失败的特殊场景

如果元素因未滚动到可视区域、被遮挡导致点击失败,可先执行滚动操作:

  • Selenium:
driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", target_card)
target_card.click()
  • Playwright:
page.locator('[data-qa="type-physical"]').scroll_into_view_if_needed()
page.locator('[data-qa="type-physical"]').click()

极端情况:直接触发点击事件

若前端交互限制导致常规点击无效,可直接调用元素的原生click方法:

  • Selenium:
driver.execute_script("arguments[0].click();", target_card)
  • Playwright:
page.locator('[data-qa="type-physical"]').evaluate("el => el.click()")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 13:32:03