version
"@playwright/test": "^1.22.2"
起こったこと
Playwrightでチェックボックスのチェックがついているラベルの値を取りたい。
以下の画像なら["チェックボックス1", "チェックボックス2"]
といった値。
<form> <div> <input type="checkbox" id="checkbox1" checked> <label for="checkbox1">チェックボックス1</label> </div> <div> <input type="checkbox" id="checkbox2" checked> <label for="checkbox2">チェックボックス2</label> </div> <div> <input type="checkbox" id="checkbox3"> <label for="checkbox3">チェックボックス3</label> </div> </form>
CSSセレクタの拡張
selectorで"div:has(input:checked) > label"
とする.
import { test, expect } from "@playwright/test"; test("チェックされているラベルが2つである", async ({ page }) => { await page.goto("/input.html"); const checkedLabels = await page .locator("div:has(input:checked) > label") .allInnerTexts(); expect(checkedLabels).toEqual(["チェックボックス1", "チェックボックス2"]); });