|
1 | 1 | /// <reference lib="dom" /> |
2 | | -import { assertEquals } from "@std/assert"; |
| 2 | +import { assertEquals, assertExists } from "@std/assert"; |
3 | 3 | import { launch } from "../mod.ts"; |
4 | 4 | import * as path from "@std/path"; |
5 | 5 |
|
@@ -101,3 +101,50 @@ Deno.test("Locator - fill()", async () => { |
101 | 101 | await page.close(); |
102 | 102 | await browser.close(); |
103 | 103 | }); |
| 104 | + |
| 105 | +Deno.test("Locator - locator()", async () => { |
| 106 | + await using server = await serveFixture("fixtures/wait_for_element.html"); |
| 107 | + |
| 108 | + await using browser = await launch(); |
| 109 | + await using page = await browser.newPage(server.address); |
| 110 | + const targetLocator = page.locator<HTMLDivElement>("#target"); |
| 111 | + |
| 112 | + const h1Locator = targetLocator.locator<HTMLHeadingElement>("h1"); |
| 113 | + |
| 114 | + const res = await h1Locator.evaluate((el) => { |
| 115 | + return document.querySelector("h1") === el; |
| 116 | + }); |
| 117 | + assertEquals(res, true); |
| 118 | +}); |
| 119 | + |
| 120 | +Deno.test("Locator - $()", async () => { |
| 121 | + await using server = await serveFixture("fixtures/wait_for_element.html"); |
| 122 | + |
| 123 | + await using browser = await launch(); |
| 124 | + await using page = await browser.newPage(server.address); |
| 125 | + const targetLocator = page.locator<HTMLDivElement>("#target"); |
| 126 | + |
| 127 | + const h1El = await targetLocator.$("h1"); |
| 128 | + assertExists(h1El); |
| 129 | + |
| 130 | + const res = await h1El.evaluate((el) => { |
| 131 | + return document.querySelector("h1") === el; |
| 132 | + }); |
| 133 | + assertEquals(res, true); |
| 134 | +}); |
| 135 | + |
| 136 | +Deno.test("Locator - $$()", async () => { |
| 137 | + await using server = await serveFixture("fixtures/wait_for_element.html"); |
| 138 | + |
| 139 | + await using browser = await launch(); |
| 140 | + await using page = await browser.newPage(server.address); |
| 141 | + const targetLocator = page.locator<HTMLDivElement>("#target"); |
| 142 | + |
| 143 | + const children = await targetLocator.$$("h1"); |
| 144 | + assertEquals(children.length, 1); |
| 145 | + |
| 146 | + const res = await children[0].evaluate((el) => { |
| 147 | + return document.querySelector("h1") === el; |
| 148 | + }); |
| 149 | + assertEquals(res, true); |
| 150 | +}); |
0 commit comments