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

如何用Playwright定位并选择Native-Base <Select>组件的选项?

解决Playwright定位Native-Base 元素问题

方法1:通过DOM层级关系定位添加自定义标识

如果能修改组件代码,可通过Native-Base的_web属性,直接给渲染后的<select>元素添加testID:

<Select
  testID="nb-select-component"
  defaultValue="yes"
  _web={{
    nativeProps: {
      'data-testid': 'html-select-element'
    }
  }}
>
  <Select.Item label="Yes" value="yes" />
  <Select.Item label="No" value="no" />
</Select>

之后就能用你原本的Playwright代码直接定位:

const selectElement = page.locator("data-testid=html-select-element");
await selectElement.selectOption({ value: "yes" });

方法3:模拟真实用户交互流程

如果前面的方法不适用,可模拟用户点击下拉框再选择选项的真实操作:

// 点击Native-Base Select组件的外层容器触发下拉
await page.locator('data-testid=nb-select-component').locator('..').locator('..').click();
// 通过选项文本选择
await page.getByText('No').click();
// 也可以通过value属性选择
await page.locator(`option[value="no"]`).click();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:57:17