@browserbasehq/orca 3.4.0-preview.0 → 3.5.0-preview.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (919) hide show
  1. package/dist/cjs/lib/inference.d.ts +2 -1
  2. package/dist/cjs/lib/inference.js +10 -3
  3. package/dist/cjs/lib/inference.js.map +1 -1
  4. package/dist/cjs/lib/prompt.d.ts +2 -2
  5. package/dist/cjs/lib/prompt.js +19 -4
  6. package/dist/cjs/lib/prompt.js.map +1 -1
  7. package/dist/cjs/lib/v3/agent/AgentProvider.d.ts +1 -1
  8. package/dist/cjs/lib/v3/agent/AgentProvider.js.map +1 -1
  9. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js +10 -0
  10. package/dist/cjs/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  11. package/dist/cjs/lib/v3/agent/utils/captureAriaTreeProbe.d.ts +35 -0
  12. package/dist/cjs/lib/v3/agent/utils/captureAriaTreeProbe.js +38 -0
  13. package/dist/cjs/lib/v3/agent/utils/captureAriaTreeProbe.js.map +1 -0
  14. package/dist/cjs/lib/v3/agent/utils/postStepProbeEvidence.d.ts +19 -0
  15. package/dist/cjs/lib/v3/agent/utils/postStepProbeEvidence.js +54 -0
  16. package/dist/cjs/lib/v3/agent/utils/postStepProbeEvidence.js.map +1 -0
  17. package/dist/cjs/lib/v3/agent/utils/toolOutputEvidence.d.ts +2 -0
  18. package/dist/cjs/lib/v3/agent/utils/toolOutputEvidence.js +62 -0
  19. package/dist/cjs/lib/v3/agent/utils/toolOutputEvidence.js.map +1 -0
  20. package/dist/cjs/lib/v3/agent/utils/wrapEvidenceCallback.d.ts +3 -0
  21. package/dist/cjs/lib/v3/agent/utils/wrapEvidenceCallback.js +25 -0
  22. package/dist/cjs/lib/v3/agent/utils/wrapEvidenceCallback.js.map +1 -0
  23. package/dist/cjs/lib/v3/api.d.ts +7 -1
  24. package/dist/cjs/lib/v3/api.js +100 -29
  25. package/dist/cjs/lib/v3/api.js.map +1 -1
  26. package/dist/cjs/lib/v3/dom/build/selectorRuntime.generated.d.ts +24 -0
  27. package/dist/cjs/lib/v3/dom/build/selectorRuntime.generated.js +31 -0
  28. package/dist/cjs/lib/v3/dom/build/selectorRuntime.generated.js.map +1 -0
  29. package/dist/cjs/lib/v3/handlers/extractHandler.js +19 -2
  30. package/dist/cjs/lib/v3/handlers/extractHandler.js.map +1 -1
  31. package/dist/cjs/lib/v3/handlers/observeHandler.js +2 -1
  32. package/dist/cjs/lib/v3/handlers/observeHandler.js.map +1 -1
  33. package/dist/cjs/lib/v3/handlers/v3AgentHandler.d.ts +1 -0
  34. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js +83 -7
  35. package/dist/cjs/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  36. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.d.ts +11 -0
  37. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js +120 -5
  38. package/dist/cjs/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  39. package/dist/cjs/lib/v3/index.d.ts +12 -0
  40. package/dist/cjs/lib/v3/index.js +19 -1
  41. package/dist/cjs/lib/v3/index.js.map +1 -1
  42. package/dist/cjs/lib/v3/launch/local.d.ts +2 -7
  43. package/dist/cjs/lib/v3/launch/local.js +47 -7
  44. package/dist/cjs/lib/v3/launch/local.js.map +1 -1
  45. package/dist/cjs/lib/v3/llm/LLMProvider.d.ts +3 -0
  46. package/dist/cjs/lib/v3/llm/LLMProvider.js +28 -8
  47. package/dist/cjs/lib/v3/llm/LLMProvider.js.map +1 -1
  48. package/dist/cjs/lib/v3/llm/aisdk.js +5 -0
  49. package/dist/cjs/lib/v3/llm/aisdk.js.map +1 -1
  50. package/dist/cjs/lib/v3/types/private/handlers.d.ts +2 -0
  51. package/dist/cjs/lib/v3/types/private/handlers.js.map +1 -1
  52. package/dist/cjs/lib/v3/types/private/snapshot.d.ts +2 -0
  53. package/dist/cjs/lib/v3/types/private/snapshot.js.map +1 -1
  54. package/dist/cjs/lib/v3/types/public/agent.d.ts +7 -1
  55. package/dist/cjs/lib/v3/types/public/agent.js.map +1 -1
  56. package/dist/cjs/lib/v3/types/public/agentEvidenceEvents.d.ts +85 -0
  57. package/dist/cjs/lib/v3/types/public/agentEvidenceEvents.js +15 -0
  58. package/dist/cjs/lib/v3/types/public/agentEvidenceEvents.js.map +1 -0
  59. package/dist/cjs/lib/v3/types/public/api.d.ts +584 -65
  60. package/dist/cjs/lib/v3/types/public/api.js +107 -7
  61. package/dist/cjs/lib/v3/types/public/api.js.map +1 -1
  62. package/dist/cjs/lib/v3/types/public/index.d.ts +1 -0
  63. package/dist/cjs/lib/v3/types/public/index.js +1 -0
  64. package/dist/cjs/lib/v3/types/public/index.js.map +1 -1
  65. package/dist/cjs/lib/v3/types/public/methods.d.ts +2 -0
  66. package/dist/cjs/lib/v3/types/public/methods.js.map +1 -1
  67. package/dist/cjs/lib/v3/types/public/model.d.ts +23 -10
  68. package/dist/cjs/lib/v3/types/public/model.js.map +1 -1
  69. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  70. package/dist/cjs/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  71. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  72. package/dist/cjs/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  73. package/dist/cjs/lib/v3/v3.d.ts +1 -0
  74. package/dist/cjs/lib/v3/v3.js +21 -47
  75. package/dist/cjs/lib/v3/v3.js.map +1 -1
  76. package/dist/cjs/lib/v3/verifier/evidenceNormalization.d.ts +7 -0
  77. package/dist/cjs/lib/v3/verifier/evidenceNormalization.js +100 -0
  78. package/dist/cjs/lib/v3/verifier/evidenceNormalization.js.map +1 -0
  79. package/dist/cjs/lib/v3/verifier/index.d.ts +6 -0
  80. package/dist/cjs/lib/v3/verifier/index.js +16 -0
  81. package/dist/cjs/lib/v3/verifier/index.js.map +1 -0
  82. package/dist/cjs/lib/v3/verifier/trajectory.d.ts +50 -0
  83. package/dist/cjs/lib/v3/verifier/trajectory.js +316 -0
  84. package/dist/cjs/lib/v3/verifier/trajectory.js.map +1 -0
  85. package/dist/cjs/lib/v3/verifier/types.d.ts +281 -0
  86. package/dist/cjs/lib/v3/verifier/types.js +10 -0
  87. package/dist/cjs/lib/v3/verifier/types.js.map +1 -0
  88. package/dist/cjs/lib/v3Evaluator.d.ts +29 -16
  89. package/dist/cjs/lib/v3Evaluator.js +184 -194
  90. package/dist/cjs/lib/v3Evaluator.js.map +1 -1
  91. package/dist/cjs/lib/v3LegacyEvaluator.d.ts +20 -0
  92. package/dist/cjs/lib/v3LegacyEvaluator.js +219 -0
  93. package/dist/cjs/lib/v3LegacyEvaluator.js.map +1 -0
  94. package/dist/cjs/lib/version.d.ts +1 -1
  95. package/dist/cjs/lib/version.js +1 -1
  96. package/dist/cjs/lib/version.js.map +1 -1
  97. package/dist/esm/lib/inference.d.ts +2 -1
  98. package/dist/esm/lib/inference.js +10 -3
  99. package/dist/esm/lib/inference.js.map +1 -1
  100. package/dist/esm/lib/prompt.d.ts +2 -2
  101. package/dist/esm/lib/prompt.js +19 -4
  102. package/dist/esm/lib/prompt.js.map +1 -1
  103. package/dist/esm/lib/v3/agent/AgentProvider.d.ts +1 -1
  104. package/dist/esm/lib/v3/agent/AgentProvider.js.map +1 -1
  105. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js +10 -0
  106. package/dist/esm/lib/v3/agent/AnthropicCUAClient.js.map +1 -1
  107. package/dist/esm/lib/v3/agent/utils/captureAriaTreeProbe.d.ts +35 -0
  108. package/dist/esm/lib/v3/agent/utils/captureAriaTreeProbe.js +35 -0
  109. package/dist/esm/lib/v3/agent/utils/captureAriaTreeProbe.js.map +1 -0
  110. package/dist/esm/lib/v3/agent/utils/postStepProbeEvidence.d.ts +19 -0
  111. package/dist/esm/lib/v3/agent/utils/postStepProbeEvidence.js +50 -0
  112. package/dist/esm/lib/v3/agent/utils/postStepProbeEvidence.js.map +1 -0
  113. package/dist/esm/lib/v3/agent/utils/toolOutputEvidence.d.ts +2 -0
  114. package/dist/esm/lib/v3/agent/utils/toolOutputEvidence.js +59 -0
  115. package/dist/esm/lib/v3/agent/utils/toolOutputEvidence.js.map +1 -0
  116. package/dist/esm/lib/v3/agent/utils/wrapEvidenceCallback.d.ts +3 -0
  117. package/dist/esm/lib/v3/agent/utils/wrapEvidenceCallback.js +22 -0
  118. package/dist/esm/lib/v3/agent/utils/wrapEvidenceCallback.js.map +1 -0
  119. package/dist/esm/lib/v3/api.d.ts +7 -1
  120. package/dist/esm/lib/v3/api.js +100 -29
  121. package/dist/esm/lib/v3/api.js.map +1 -1
  122. package/dist/esm/lib/v3/dom/build/selectorRuntime.generated.d.ts +24 -0
  123. package/dist/esm/lib/v3/dom/build/selectorRuntime.generated.js +28 -0
  124. package/dist/esm/lib/v3/dom/build/selectorRuntime.generated.js.map +1 -0
  125. package/dist/esm/lib/v3/handlers/extractHandler.js +19 -2
  126. package/dist/esm/lib/v3/handlers/extractHandler.js.map +1 -1
  127. package/dist/esm/lib/v3/handlers/observeHandler.js +2 -1
  128. package/dist/esm/lib/v3/handlers/observeHandler.js.map +1 -1
  129. package/dist/esm/lib/v3/handlers/v3AgentHandler.d.ts +1 -0
  130. package/dist/esm/lib/v3/handlers/v3AgentHandler.js +83 -7
  131. package/dist/esm/lib/v3/handlers/v3AgentHandler.js.map +1 -1
  132. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.d.ts +11 -0
  133. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js +120 -5
  134. package/dist/esm/lib/v3/handlers/v3CuaAgentHandler.js.map +1 -1
  135. package/dist/esm/lib/v3/index.d.ts +12 -0
  136. package/dist/esm/lib/v3/index.js +10 -0
  137. package/dist/esm/lib/v3/index.js.map +1 -1
  138. package/dist/esm/lib/v3/launch/local.d.ts +2 -7
  139. package/dist/esm/lib/v3/launch/local.js +48 -8
  140. package/dist/esm/lib/v3/launch/local.js.map +1 -1
  141. package/dist/esm/lib/v3/llm/LLMProvider.d.ts +3 -0
  142. package/dist/esm/lib/v3/llm/LLMProvider.js +28 -9
  143. package/dist/esm/lib/v3/llm/LLMProvider.js.map +1 -1
  144. package/dist/esm/lib/v3/llm/aisdk.js +5 -0
  145. package/dist/esm/lib/v3/llm/aisdk.js.map +1 -1
  146. package/dist/esm/lib/v3/types/private/handlers.d.ts +2 -0
  147. package/dist/esm/lib/v3/types/private/handlers.js.map +1 -1
  148. package/dist/esm/lib/v3/types/private/snapshot.d.ts +2 -0
  149. package/dist/esm/lib/v3/types/private/snapshot.js.map +1 -1
  150. package/dist/esm/lib/v3/types/public/agent.d.ts +7 -1
  151. package/dist/esm/lib/v3/types/public/agent.js.map +1 -1
  152. package/dist/esm/lib/v3/types/public/agentEvidenceEvents.d.ts +85 -0
  153. package/dist/esm/lib/v3/types/public/agentEvidenceEvents.js +14 -0
  154. package/dist/esm/lib/v3/types/public/agentEvidenceEvents.js.map +1 -0
  155. package/dist/esm/lib/v3/types/public/api.d.ts +584 -65
  156. package/dist/esm/lib/v3/types/public/api.js +105 -5
  157. package/dist/esm/lib/v3/types/public/api.js.map +1 -1
  158. package/dist/esm/lib/v3/types/public/index.d.ts +1 -0
  159. package/dist/esm/lib/v3/types/public/index.js +1 -0
  160. package/dist/esm/lib/v3/types/public/index.js.map +1 -1
  161. package/dist/esm/lib/v3/types/public/methods.d.ts +2 -0
  162. package/dist/esm/lib/v3/types/public/methods.js.map +1 -1
  163. package/dist/esm/lib/v3/types/public/model.d.ts +23 -10
  164. package/dist/esm/lib/v3/types/public/model.js.map +1 -1
  165. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js +25 -0
  166. package/dist/esm/lib/v3/understudy/a11y/snapshot/a11yTree.js.map +1 -1
  167. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js +10 -1
  168. package/dist/esm/lib/v3/understudy/a11y/snapshot/treeFormatUtils.js.map +1 -1
  169. package/dist/esm/lib/v3/v3.d.ts +1 -0
  170. package/dist/esm/lib/v3/v3.js +21 -47
  171. package/dist/esm/lib/v3/v3.js.map +1 -1
  172. package/dist/esm/lib/v3/verifier/evidenceNormalization.d.ts +7 -0
  173. package/dist/esm/lib/v3/verifier/evidenceNormalization.js +93 -0
  174. package/dist/esm/lib/v3/verifier/evidenceNormalization.js.map +1 -0
  175. package/dist/esm/lib/v3/verifier/index.d.ts +6 -0
  176. package/dist/esm/lib/v3/verifier/index.js +3 -0
  177. package/dist/esm/lib/v3/verifier/index.js.map +1 -0
  178. package/dist/esm/lib/v3/verifier/trajectory.d.ts +50 -0
  179. package/dist/esm/lib/v3/verifier/trajectory.js +273 -0
  180. package/dist/esm/lib/v3/verifier/trajectory.js.map +1 -0
  181. package/dist/esm/lib/v3/verifier/types.d.ts +281 -0
  182. package/dist/esm/lib/v3/verifier/types.js +9 -0
  183. package/dist/esm/lib/v3/verifier/types.js.map +1 -0
  184. package/dist/esm/lib/v3Evaluator.d.ts +29 -16
  185. package/dist/esm/lib/v3Evaluator.js +183 -193
  186. package/dist/esm/lib/v3Evaluator.js.map +1 -1
  187. package/dist/esm/lib/v3LegacyEvaluator.d.ts +20 -0
  188. package/dist/esm/lib/v3LegacyEvaluator.js +215 -0
  189. package/dist/esm/lib/v3LegacyEvaluator.js.map +1 -0
  190. package/dist/esm/lib/version.d.ts +1 -1
  191. package/dist/esm/lib/version.js +1 -1
  192. package/dist/esm/lib/version.js.map +1 -1
  193. package/package.json +33 -21
  194. package/dist/cjs/tests/cache-variables.test.d.ts +0 -1
  195. package/dist/cjs/tests/cache-variables.test.js +0 -221
  196. package/dist/cjs/tests/cache-variables.test.js.map +0 -1
  197. package/dist/cjs/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  198. package/dist/cjs/tests/integration/agent-abort-signal.spec.js +0 -123
  199. package/dist/cjs/tests/integration/agent-abort-signal.spec.js.map +0 -1
  200. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  201. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js +0 -83
  202. package/dist/cjs/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  203. package/dist/cjs/tests/integration/agent-callbacks.spec.d.ts +0 -1
  204. package/dist/cjs/tests/integration/agent-callbacks.spec.js +0 -385
  205. package/dist/cjs/tests/integration/agent-callbacks.spec.js.map +0 -1
  206. package/dist/cjs/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  207. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js +0 -362
  208. package/dist/cjs/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  209. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  210. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js +0 -262
  211. package/dist/cjs/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  212. package/dist/cjs/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  213. package/dist/cjs/tests/integration/agent-message-continuation.spec.js +0 -112
  214. package/dist/cjs/tests/integration/agent-message-continuation.spec.js.map +0 -1
  215. package/dist/cjs/tests/integration/agent-streaming.spec.d.ts +0 -1
  216. package/dist/cjs/tests/integration/agent-streaming.spec.js +0 -140
  217. package/dist/cjs/tests/integration/agent-streaming.spec.js.map +0 -1
  218. package/dist/cjs/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  219. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js +0 -41
  220. package/dist/cjs/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  221. package/dist/cjs/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  222. package/dist/cjs/tests/integration/cdp-connection-close.spec.js +0 -76
  223. package/dist/cjs/tests/integration/cdp-connection-close.spec.js.map +0 -1
  224. package/dist/cjs/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  225. package/dist/cjs/tests/integration/cdp-session-detached.spec.js +0 -45
  226. package/dist/cjs/tests/integration/cdp-session-detached.spec.js.map +0 -1
  227. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  228. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js +0 -56
  229. package/dist/cjs/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  230. package/dist/cjs/tests/integration/click-count.spec.d.ts +0 -1
  231. package/dist/cjs/tests/integration/click-count.spec.js +0 -163
  232. package/dist/cjs/tests/integration/click-count.spec.js.map +0 -1
  233. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  234. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js +0 -99
  235. package/dist/cjs/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  236. package/dist/cjs/tests/integration/context-addInitScript.spec.d.ts +0 -1
  237. package/dist/cjs/tests/integration/context-addInitScript.spec.js +0 -285
  238. package/dist/cjs/tests/integration/context-addInitScript.spec.js.map +0 -1
  239. package/dist/cjs/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  240. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js +0 -49
  241. package/dist/cjs/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  242. package/dist/cjs/tests/integration/cookies.spec.d.ts +0 -1
  243. package/dist/cjs/tests/integration/cookies.spec.js +0 -187
  244. package/dist/cjs/tests/integration/cookies.spec.js.map +0 -1
  245. package/dist/cjs/tests/integration/default-page-tracking.spec.d.ts +0 -1
  246. package/dist/cjs/tests/integration/default-page-tracking.spec.js +0 -52
  247. package/dist/cjs/tests/integration/default-page-tracking.spec.js.map +0 -1
  248. package/dist/cjs/tests/integration/downloads.spec.d.ts +0 -1
  249. package/dist/cjs/tests/integration/downloads.spec.js +0 -52
  250. package/dist/cjs/tests/integration/downloads.spec.js.map +0 -1
  251. package/dist/cjs/tests/integration/flowLogger.spec.d.ts +0 -1
  252. package/dist/cjs/tests/integration/flowLogger.spec.js +0 -718
  253. package/dist/cjs/tests/integration/flowLogger.spec.js.map +0 -1
  254. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  255. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js +0 -57
  256. package/dist/cjs/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  257. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  258. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -219
  259. package/dist/cjs/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  260. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  261. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js +0 -474
  262. package/dist/cjs/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  263. package/dist/cjs/tests/integration/keep-alive.child.d.ts +0 -1
  264. package/dist/cjs/tests/integration/keep-alive.child.js +0 -85
  265. package/dist/cjs/tests/integration/keep-alive.child.js.map +0 -1
  266. package/dist/cjs/tests/integration/keep-alive.spec.d.ts +0 -22
  267. package/dist/cjs/tests/integration/keep-alive.spec.js +0 -490
  268. package/dist/cjs/tests/integration/keep-alive.spec.js.map +0 -1
  269. package/dist/cjs/tests/integration/keyboard.spec.d.ts +0 -1
  270. package/dist/cjs/tests/integration/keyboard.spec.js +0 -259
  271. package/dist/cjs/tests/integration/keyboard.spec.js.map +0 -1
  272. package/dist/cjs/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  273. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js +0 -150
  274. package/dist/cjs/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  275. package/dist/cjs/tests/integration/locator-content-methods.spec.d.ts +0 -1
  276. package/dist/cjs/tests/integration/locator-content-methods.spec.js +0 -180
  277. package/dist/cjs/tests/integration/locator-content-methods.spec.js.map +0 -1
  278. package/dist/cjs/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  279. package/dist/cjs/tests/integration/locator-count-iframe.spec.js +0 -129
  280. package/dist/cjs/tests/integration/locator-count-iframe.spec.js.map +0 -1
  281. package/dist/cjs/tests/integration/locator-count.spec.d.ts +0 -1
  282. package/dist/cjs/tests/integration/locator-count.spec.js +0 -68
  283. package/dist/cjs/tests/integration/locator-count.spec.js.map +0 -1
  284. package/dist/cjs/tests/integration/locator-fill.spec.d.ts +0 -1
  285. package/dist/cjs/tests/integration/locator-fill.spec.js +0 -117
  286. package/dist/cjs/tests/integration/locator-fill.spec.js.map +0 -1
  287. package/dist/cjs/tests/integration/locator-input-methods.spec.d.ts +0 -1
  288. package/dist/cjs/tests/integration/locator-input-methods.spec.js +0 -127
  289. package/dist/cjs/tests/integration/locator-input-methods.spec.js.map +0 -1
  290. package/dist/cjs/tests/integration/locator-nth.spec.d.ts +0 -1
  291. package/dist/cjs/tests/integration/locator-nth.spec.js +0 -175
  292. package/dist/cjs/tests/integration/locator-nth.spec.js.map +0 -1
  293. package/dist/cjs/tests/integration/locator-select-option.spec.d.ts +0 -1
  294. package/dist/cjs/tests/integration/locator-select-option.spec.js +0 -216
  295. package/dist/cjs/tests/integration/locator-select-option.spec.js.map +0 -1
  296. package/dist/cjs/tests/integration/logger-initialization.spec.d.ts +0 -1
  297. package/dist/cjs/tests/integration/logger-initialization.spec.js +0 -597
  298. package/dist/cjs/tests/integration/logger-initialization.spec.js.map +0 -1
  299. package/dist/cjs/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  300. package/dist/cjs/tests/integration/multi-instance-logger.spec.js +0 -293
  301. package/dist/cjs/tests/integration/multi-instance-logger.spec.js.map +0 -1
  302. package/dist/cjs/tests/integration/nested-div.spec.d.ts +0 -1
  303. package/dist/cjs/tests/integration/nested-div.spec.js +0 -22
  304. package/dist/cjs/tests/integration/nested-div.spec.js.map +0 -1
  305. package/dist/cjs/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  306. package/dist/cjs/tests/integration/observe-element-id-format.spec.js +0 -130
  307. package/dist/cjs/tests/integration/observe-element-id-format.spec.js.map +0 -1
  308. package/dist/cjs/tests/integration/page-addInitScript.spec.d.ts +0 -1
  309. package/dist/cjs/tests/integration/page-addInitScript.spec.js +0 -94
  310. package/dist/cjs/tests/integration/page-addInitScript.spec.js.map +0 -1
  311. package/dist/cjs/tests/integration/page-console.spec.d.ts +0 -1
  312. package/dist/cjs/tests/integration/page-console.spec.js +0 -47
  313. package/dist/cjs/tests/integration/page-console.spec.js.map +0 -1
  314. package/dist/cjs/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  315. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js +0 -437
  316. package/dist/cjs/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  317. package/dist/cjs/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  318. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js +0 -85
  319. package/dist/cjs/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  320. package/dist/cjs/tests/integration/page-goto-response.spec.d.ts +0 -1
  321. package/dist/cjs/tests/integration/page-goto-response.spec.js +0 -34
  322. package/dist/cjs/tests/integration/page-goto-response.spec.js.map +0 -1
  323. package/dist/cjs/tests/integration/page-hover.spec.d.ts +0 -1
  324. package/dist/cjs/tests/integration/page-hover.spec.js +0 -165
  325. package/dist/cjs/tests/integration/page-hover.spec.js.map +0 -1
  326. package/dist/cjs/tests/integration/page-screenshot.spec.d.ts +0 -1
  327. package/dist/cjs/tests/integration/page-screenshot.spec.js +0 -292
  328. package/dist/cjs/tests/integration/page-screenshot.spec.js.map +0 -1
  329. package/dist/cjs/tests/integration/page-scroll.spec.d.ts +0 -1
  330. package/dist/cjs/tests/integration/page-scroll.spec.js +0 -183
  331. package/dist/cjs/tests/integration/page-scroll.spec.js.map +0 -1
  332. package/dist/cjs/tests/integration/page-send-cdp.spec.d.ts +0 -1
  333. package/dist/cjs/tests/integration/page-send-cdp.spec.js +0 -47
  334. package/dist/cjs/tests/integration/page-send-cdp.spec.js.map +0 -1
  335. package/dist/cjs/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  336. package/dist/cjs/tests/integration/perform-understudy-method.spec.js +0 -63
  337. package/dist/cjs/tests/integration/perform-understudy-method.spec.js.map +0 -1
  338. package/dist/cjs/tests/integration/setinputfiles.spec.d.ts +0 -1
  339. package/dist/cjs/tests/integration/setinputfiles.spec.js +0 -133
  340. package/dist/cjs/tests/integration/setinputfiles.spec.js.map +0 -1
  341. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  342. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js +0 -161
  343. package/dist/cjs/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  344. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  345. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js +0 -160
  346. package/dist/cjs/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  347. package/dist/cjs/tests/integration/testUtils.d.ts +0 -40
  348. package/dist/cjs/tests/integration/testUtils.js +0 -188
  349. package/dist/cjs/tests/integration/testUtils.js.map +0 -1
  350. package/dist/cjs/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  351. package/dist/cjs/tests/integration/text-selector-innermost.spec.js +0 -105
  352. package/dist/cjs/tests/integration/text-selector-innermost.spec.js.map +0 -1
  353. package/dist/cjs/tests/integration/timeouts.spec.d.ts +0 -1
  354. package/dist/cjs/tests/integration/timeouts.spec.js +0 -309
  355. package/dist/cjs/tests/integration/timeouts.spec.js.map +0 -1
  356. package/dist/cjs/tests/integration/user-data-dir.spec.d.ts +0 -1
  357. package/dist/cjs/tests/integration/user-data-dir.spec.js +0 -77
  358. package/dist/cjs/tests/integration/user-data-dir.spec.js.map +0 -1
  359. package/dist/cjs/tests/integration/v3.config.d.ts +0 -4
  360. package/dist/cjs/tests/integration/v3.config.js +0 -11
  361. package/dist/cjs/tests/integration/v3.config.js.map +0 -1
  362. package/dist/cjs/tests/integration/v3.dynamic.config.d.ts +0 -4
  363. package/dist/cjs/tests/integration/v3.dynamic.config.js +0 -48
  364. package/dist/cjs/tests/integration/v3.dynamic.config.js.map +0 -1
  365. package/dist/cjs/tests/integration/v3.playwright.config.d.ts +0 -2
  366. package/dist/cjs/tests/integration/v3.playwright.config.js +0 -48
  367. package/dist/cjs/tests/integration/v3.playwright.config.js.map +0 -1
  368. package/dist/cjs/tests/integration/wait-for-selector.spec.d.ts +0 -1
  369. package/dist/cjs/tests/integration/wait-for-selector.spec.js +0 -683
  370. package/dist/cjs/tests/integration/wait-for-selector.spec.js.map +0 -1
  371. package/dist/cjs/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  372. package/dist/cjs/tests/integration/wait-for-timeout.spec.js +0 -118
  373. package/dist/cjs/tests/integration/wait-for-timeout.spec.js.map +0 -1
  374. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  375. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js +0 -87
  376. package/dist/cjs/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  377. package/dist/cjs/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  378. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js +0 -341
  379. package/dist/cjs/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  380. package/dist/cjs/tests/unit/agent-execution-model.test.d.ts +0 -1
  381. package/dist/cjs/tests/unit/agent-execution-model.test.js +0 -150
  382. package/dist/cjs/tests/unit/agent-execution-model.test.js.map +0 -1
  383. package/dist/cjs/tests/unit/agent-metrics.test.d.ts +0 -1
  384. package/dist/cjs/tests/unit/agent-metrics.test.js +0 -112
  385. package/dist/cjs/tests/unit/agent-metrics.test.js.map +0 -1
  386. package/dist/cjs/tests/unit/agent-mode-routing.test.d.ts +0 -1
  387. package/dist/cjs/tests/unit/agent-mode-routing.test.js +0 -88
  388. package/dist/cjs/tests/unit/agent-mode-routing.test.js.map +0 -1
  389. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  390. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js +0 -23
  391. package/dist/cjs/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  392. package/dist/cjs/tests/unit/agent-temperature.test.d.ts +0 -1
  393. package/dist/cjs/tests/unit/agent-temperature.test.js +0 -191
  394. package/dist/cjs/tests/unit/agent-temperature.test.js.map +0 -1
  395. package/dist/cjs/tests/unit/agent-variables-validation.test.d.ts +0 -1
  396. package/dist/cjs/tests/unit/agent-variables-validation.test.js +0 -43
  397. package/dist/cjs/tests/unit/agent-variables-validation.test.js.map +0 -1
  398. package/dist/cjs/tests/unit/aisdk-clients.test.d.ts +0 -1
  399. package/dist/cjs/tests/unit/aisdk-clients.test.js +0 -86
  400. package/dist/cjs/tests/unit/aisdk-clients.test.js.map +0 -1
  401. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  402. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -250
  403. package/dist/cjs/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  404. package/dist/cjs/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  405. package/dist/cjs/tests/unit/api-client-observe-variables.test.js +0 -133
  406. package/dist/cjs/tests/unit/api-client-observe-variables.test.js.map +0 -1
  407. package/dist/cjs/tests/unit/api-multiregion.test.d.ts +0 -1
  408. package/dist/cjs/tests/unit/api-multiregion.test.js +0 -58
  409. package/dist/cjs/tests/unit/api-multiregion.test.js.map +0 -1
  410. package/dist/cjs/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  411. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js +0 -155
  412. package/dist/cjs/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  413. package/dist/cjs/tests/unit/api-variables-schema.test.d.ts +0 -1
  414. package/dist/cjs/tests/unit/api-variables-schema.test.js +0 -62
  415. package/dist/cjs/tests/unit/api-variables-schema.test.js.map +0 -1
  416. package/dist/cjs/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  417. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js +0 -142
  418. package/dist/cjs/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  419. package/dist/cjs/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  420. package/dist/cjs/tests/unit/cache-llm-resolution.test.js +0 -186
  421. package/dist/cjs/tests/unit/cache-llm-resolution.test.js.map +0 -1
  422. package/dist/cjs/tests/unit/captcha-solver.test.d.ts +0 -1
  423. package/dist/cjs/tests/unit/captcha-solver.test.js +0 -154
  424. package/dist/cjs/tests/unit/captcha-solver.test.js.map +0 -1
  425. package/dist/cjs/tests/unit/cdp-connection-close.test.d.ts +0 -1
  426. package/dist/cjs/tests/unit/cdp-connection-close.test.js +0 -74
  427. package/dist/cjs/tests/unit/cdp-connection-close.test.js.map +0 -1
  428. package/dist/cjs/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  429. package/dist/cjs/tests/unit/context-extra-http-headers.test.js +0 -58
  430. package/dist/cjs/tests/unit/context-extra-http-headers.test.js.map +0 -1
  431. package/dist/cjs/tests/unit/cookies.test.d.ts +0 -1
  432. package/dist/cjs/tests/unit/cookies.test.js +0 -944
  433. package/dist/cjs/tests/unit/cookies.test.js.map +0 -1
  434. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  435. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js +0 -95
  436. package/dist/cjs/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  437. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  438. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js +0 -43
  439. package/dist/cjs/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  440. package/dist/cjs/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  441. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js +0 -250
  442. package/dist/cjs/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  443. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  444. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js +0 -60
  445. package/dist/cjs/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  446. package/dist/cjs/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  447. package/dist/cjs/tests/unit/helpers/mockCDPSession.js +0 -29
  448. package/dist/cjs/tests/unit/helpers/mockCDPSession.js.map +0 -1
  449. package/dist/cjs/tests/unit/inference-temperature.test.d.ts +0 -1
  450. package/dist/cjs/tests/unit/inference-temperature.test.js +0 -65
  451. package/dist/cjs/tests/unit/inference-temperature.test.js.map +0 -1
  452. package/dist/cjs/tests/unit/llm-middleware.test.d.ts +0 -1
  453. package/dist/cjs/tests/unit/llm-middleware.test.js +0 -495
  454. package/dist/cjs/tests/unit/llm-middleware.test.js.map +0 -1
  455. package/dist/cjs/tests/unit/llm-provider.test.d.ts +0 -1
  456. package/dist/cjs/tests/unit/llm-provider.test.js +0 -64
  457. package/dist/cjs/tests/unit/llm-provider.test.js.map +0 -1
  458. package/dist/cjs/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  459. package/dist/cjs/tests/unit/microsoft-cua-client.test.js +0 -86
  460. package/dist/cjs/tests/unit/microsoft-cua-client.test.js.map +0 -1
  461. package/dist/cjs/tests/unit/model-deprecation.test.d.ts +0 -1
  462. package/dist/cjs/tests/unit/model-deprecation.test.js +0 -142
  463. package/dist/cjs/tests/unit/model-deprecation.test.js.map +0 -1
  464. package/dist/cjs/tests/unit/model-utils.test.d.ts +0 -1
  465. package/dist/cjs/tests/unit/model-utils.test.js +0 -42
  466. package/dist/cjs/tests/unit/model-utils.test.js.map +0 -1
  467. package/dist/cjs/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  468. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js +0 -84
  469. package/dist/cjs/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  470. package/dist/cjs/tests/unit/openai-cua-client.test.d.ts +0 -1
  471. package/dist/cjs/tests/unit/openai-cua-client.test.js +0 -71
  472. package/dist/cjs/tests/unit/openai-cua-client.test.js.map +0 -1
  473. package/dist/cjs/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  474. package/dist/cjs/tests/unit/page-extra-http-headers.test.js +0 -92
  475. package/dist/cjs/tests/unit/page-extra-http-headers.test.js.map +0 -1
  476. package/dist/cjs/tests/unit/page-snapshot.test.d.ts +0 -1
  477. package/dist/cjs/tests/unit/page-snapshot.test.js +0 -75
  478. package/dist/cjs/tests/unit/page-snapshot.test.js.map +0 -1
  479. package/dist/cjs/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  480. package/dist/cjs/tests/unit/prompt-observe-variables.test.js +0 -25
  481. package/dist/cjs/tests/unit/prompt-observe-variables.test.js.map +0 -1
  482. package/dist/cjs/tests/unit/public-api/export-surface.test.d.ts +0 -1
  483. package/dist/cjs/tests/unit/public-api/export-surface.test.js +0 -107
  484. package/dist/cjs/tests/unit/public-api/export-surface.test.js.map +0 -1
  485. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  486. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js +0 -179
  487. package/dist/cjs/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  488. package/dist/cjs/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  489. package/dist/cjs/tests/unit/public-api/public-error-types.test.js +0 -110
  490. package/dist/cjs/tests/unit/public-api/public-error-types.test.js.map +0 -1
  491. package/dist/cjs/tests/unit/public-api/public-types.test.d.ts +0 -1
  492. package/dist/cjs/tests/unit/public-api/public-types.test.js +0 -99
  493. package/dist/cjs/tests/unit/public-api/public-types.test.js.map +0 -1
  494. package/dist/cjs/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  495. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js +0 -60
  496. package/dist/cjs/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  497. package/dist/cjs/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  498. package/dist/cjs/tests/unit/public-api/schema-utils.test.js +0 -95
  499. package/dist/cjs/tests/unit/public-api/schema-utils.test.js.map +0 -1
  500. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  501. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js +0 -121
  502. package/dist/cjs/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  503. package/dist/cjs/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  504. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js +0 -65
  505. package/dist/cjs/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  506. package/dist/cjs/tests/unit/public-api/v3-core.test.d.ts +0 -1
  507. package/dist/cjs/tests/unit/public-api/v3-core.test.js +0 -108
  508. package/dist/cjs/tests/unit/public-api/v3-core.test.js.map +0 -1
  509. package/dist/cjs/tests/unit/safety-confirmation.test.d.ts +0 -1
  510. package/dist/cjs/tests/unit/safety-confirmation.test.js +0 -110
  511. package/dist/cjs/tests/unit/safety-confirmation.test.js.map +0 -1
  512. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  513. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js +0 -431
  514. package/dist/cjs/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  515. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  516. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js +0 -306
  517. package/dist/cjs/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  518. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  519. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js +0 -504
  520. package/dist/cjs/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  521. package/dist/cjs/tests/unit/snapshot-cbor.test.d.ts +0 -1
  522. package/dist/cjs/tests/unit/snapshot-cbor.test.js +0 -204
  523. package/dist/cjs/tests/unit/snapshot-cbor.test.js.map +0 -1
  524. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  525. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js +0 -220
  526. package/dist/cjs/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  527. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  528. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js +0 -107
  529. package/dist/cjs/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  530. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  531. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js +0 -89
  532. package/dist/cjs/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  533. package/dist/cjs/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  534. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js +0 -335
  535. package/dist/cjs/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  536. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  537. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js +0 -84
  538. package/dist/cjs/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  539. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  540. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js +0 -74
  541. package/dist/cjs/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  542. package/dist/cjs/tests/unit/timeout-handlers.test.d.ts +0 -1
  543. package/dist/cjs/tests/unit/timeout-handlers.test.js +0 -897
  544. package/dist/cjs/tests/unit/timeout-handlers.test.js.map +0 -1
  545. package/dist/cjs/tests/unit/understudy-command-exception.test.d.ts +0 -1
  546. package/dist/cjs/tests/unit/understudy-command-exception.test.js +0 -57
  547. package/dist/cjs/tests/unit/understudy-command-exception.test.js.map +0 -1
  548. package/dist/cjs/tests/unit/xpath-parser.test.d.ts +0 -1
  549. package/dist/cjs/tests/unit/xpath-parser.test.js +0 -311
  550. package/dist/cjs/tests/unit/xpath-parser.test.js.map +0 -1
  551. package/dist/cjs/tests/unit/xpath-resolver.test.d.ts +0 -1
  552. package/dist/cjs/tests/unit/xpath-resolver.test.js +0 -80
  553. package/dist/cjs/tests/unit/xpath-resolver.test.js.map +0 -1
  554. package/dist/cjs/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  555. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js +0 -149
  556. package/dist/cjs/tests/unit/zod-enum-compatibility.test.js.map +0 -1
  557. package/dist/esm/tests/cache-variables.test.d.ts +0 -1
  558. package/dist/esm/tests/cache-variables.test.js +0 -219
  559. package/dist/esm/tests/cache-variables.test.js.map +0 -1
  560. package/dist/esm/tests/integration/agent-abort-signal.spec.d.ts +0 -1
  561. package/dist/esm/tests/integration/agent-abort-signal.spec.js +0 -121
  562. package/dist/esm/tests/integration/agent-abort-signal.spec.js.map +0 -1
  563. package/dist/esm/tests/integration/agent-cache-self-heal.spec.d.ts +0 -1
  564. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js +0 -78
  565. package/dist/esm/tests/integration/agent-cache-self-heal.spec.js.map +0 -1
  566. package/dist/esm/tests/integration/agent-callbacks.spec.d.ts +0 -1
  567. package/dist/esm/tests/integration/agent-callbacks.spec.js +0 -383
  568. package/dist/esm/tests/integration/agent-callbacks.spec.js.map +0 -1
  569. package/dist/esm/tests/integration/agent-experimental-validation.spec.d.ts +0 -1
  570. package/dist/esm/tests/integration/agent-experimental-validation.spec.js +0 -360
  571. package/dist/esm/tests/integration/agent-experimental-validation.spec.js.map +0 -1
  572. package/dist/esm/tests/integration/agent-hybrid-mode.spec.d.ts +0 -1
  573. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js +0 -260
  574. package/dist/esm/tests/integration/agent-hybrid-mode.spec.js.map +0 -1
  575. package/dist/esm/tests/integration/agent-message-continuation.spec.d.ts +0 -1
  576. package/dist/esm/tests/integration/agent-message-continuation.spec.js +0 -110
  577. package/dist/esm/tests/integration/agent-message-continuation.spec.js.map +0 -1
  578. package/dist/esm/tests/integration/agent-streaming.spec.d.ts +0 -1
  579. package/dist/esm/tests/integration/agent-streaming.spec.js +0 -138
  580. package/dist/esm/tests/integration/agent-streaming.spec.js.map +0 -1
  581. package/dist/esm/tests/integration/cdp-close-api-region.spec.d.ts +0 -1
  582. package/dist/esm/tests/integration/cdp-close-api-region.spec.js +0 -39
  583. package/dist/esm/tests/integration/cdp-close-api-region.spec.js.map +0 -1
  584. package/dist/esm/tests/integration/cdp-connection-close.spec.d.ts +0 -1
  585. package/dist/esm/tests/integration/cdp-connection-close.spec.js +0 -74
  586. package/dist/esm/tests/integration/cdp-connection-close.spec.js.map +0 -1
  587. package/dist/esm/tests/integration/cdp-session-detached.spec.d.ts +0 -1
  588. package/dist/esm/tests/integration/cdp-session-detached.spec.js +0 -43
  589. package/dist/esm/tests/integration/cdp-session-detached.spec.js.map +0 -1
  590. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.d.ts +0 -1
  591. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js +0 -54
  592. package/dist/esm/tests/integration/chrome-newtab-page-tracking.spec.js.map +0 -1
  593. package/dist/esm/tests/integration/click-count.spec.d.ts +0 -1
  594. package/dist/esm/tests/integration/click-count.spec.js +0 -161
  595. package/dist/esm/tests/integration/click-count.spec.js.map +0 -1
  596. package/dist/esm/tests/integration/connect-to-existing-browser.spec.d.ts +0 -1
  597. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js +0 -97
  598. package/dist/esm/tests/integration/connect-to-existing-browser.spec.js.map +0 -1
  599. package/dist/esm/tests/integration/context-addInitScript.spec.d.ts +0 -1
  600. package/dist/esm/tests/integration/context-addInitScript.spec.js +0 -283
  601. package/dist/esm/tests/integration/context-addInitScript.spec.js.map +0 -1
  602. package/dist/esm/tests/integration/context-extra-http-headers.spec.d.ts +0 -1
  603. package/dist/esm/tests/integration/context-extra-http-headers.spec.js +0 -47
  604. package/dist/esm/tests/integration/context-extra-http-headers.spec.js.map +0 -1
  605. package/dist/esm/tests/integration/cookies.spec.d.ts +0 -1
  606. package/dist/esm/tests/integration/cookies.spec.js +0 -185
  607. package/dist/esm/tests/integration/cookies.spec.js.map +0 -1
  608. package/dist/esm/tests/integration/default-page-tracking.spec.d.ts +0 -1
  609. package/dist/esm/tests/integration/default-page-tracking.spec.js +0 -50
  610. package/dist/esm/tests/integration/default-page-tracking.spec.js.map +0 -1
  611. package/dist/esm/tests/integration/downloads.spec.d.ts +0 -1
  612. package/dist/esm/tests/integration/downloads.spec.js +0 -47
  613. package/dist/esm/tests/integration/downloads.spec.js.map +0 -1
  614. package/dist/esm/tests/integration/flowLogger.spec.d.ts +0 -1
  615. package/dist/esm/tests/integration/flowLogger.spec.js +0 -716
  616. package/dist/esm/tests/integration/flowLogger.spec.js.map +0 -1
  617. package/dist/esm/tests/integration/frame-get-location-and-click.spec.d.ts +0 -1
  618. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js +0 -55
  619. package/dist/esm/tests/integration/frame-get-location-and-click.spec.js.map +0 -1
  620. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.d.ts +0 -1
  621. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js +0 -217
  622. package/dist/esm/tests/integration/iframe-ctx-addInitScript-race.spec.js.map +0 -1
  623. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.d.ts +0 -1
  624. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js +0 -472
  625. package/dist/esm/tests/integration/iframe-ctx-addInitScript.spec.js.map +0 -1
  626. package/dist/esm/tests/integration/keep-alive.child.d.ts +0 -1
  627. package/dist/esm/tests/integration/keep-alive.child.js +0 -83
  628. package/dist/esm/tests/integration/keep-alive.child.js.map +0 -1
  629. package/dist/esm/tests/integration/keep-alive.spec.d.ts +0 -22
  630. package/dist/esm/tests/integration/keep-alive.spec.js +0 -482
  631. package/dist/esm/tests/integration/keep-alive.spec.js.map +0 -1
  632. package/dist/esm/tests/integration/keyboard.spec.d.ts +0 -1
  633. package/dist/esm/tests/integration/keyboard.spec.js +0 -257
  634. package/dist/esm/tests/integration/keyboard.spec.js.map +0 -1
  635. package/dist/esm/tests/integration/locator-backend-node-id.spec.d.ts +0 -1
  636. package/dist/esm/tests/integration/locator-backend-node-id.spec.js +0 -148
  637. package/dist/esm/tests/integration/locator-backend-node-id.spec.js.map +0 -1
  638. package/dist/esm/tests/integration/locator-content-methods.spec.d.ts +0 -1
  639. package/dist/esm/tests/integration/locator-content-methods.spec.js +0 -178
  640. package/dist/esm/tests/integration/locator-content-methods.spec.js.map +0 -1
  641. package/dist/esm/tests/integration/locator-count-iframe.spec.d.ts +0 -1
  642. package/dist/esm/tests/integration/locator-count-iframe.spec.js +0 -127
  643. package/dist/esm/tests/integration/locator-count-iframe.spec.js.map +0 -1
  644. package/dist/esm/tests/integration/locator-count.spec.d.ts +0 -1
  645. package/dist/esm/tests/integration/locator-count.spec.js +0 -66
  646. package/dist/esm/tests/integration/locator-count.spec.js.map +0 -1
  647. package/dist/esm/tests/integration/locator-fill.spec.d.ts +0 -1
  648. package/dist/esm/tests/integration/locator-fill.spec.js +0 -115
  649. package/dist/esm/tests/integration/locator-fill.spec.js.map +0 -1
  650. package/dist/esm/tests/integration/locator-input-methods.spec.d.ts +0 -1
  651. package/dist/esm/tests/integration/locator-input-methods.spec.js +0 -125
  652. package/dist/esm/tests/integration/locator-input-methods.spec.js.map +0 -1
  653. package/dist/esm/tests/integration/locator-nth.spec.d.ts +0 -1
  654. package/dist/esm/tests/integration/locator-nth.spec.js +0 -173
  655. package/dist/esm/tests/integration/locator-nth.spec.js.map +0 -1
  656. package/dist/esm/tests/integration/locator-select-option.spec.d.ts +0 -1
  657. package/dist/esm/tests/integration/locator-select-option.spec.js +0 -214
  658. package/dist/esm/tests/integration/locator-select-option.spec.js.map +0 -1
  659. package/dist/esm/tests/integration/logger-initialization.spec.d.ts +0 -1
  660. package/dist/esm/tests/integration/logger-initialization.spec.js +0 -595
  661. package/dist/esm/tests/integration/logger-initialization.spec.js.map +0 -1
  662. package/dist/esm/tests/integration/multi-instance-logger.spec.d.ts +0 -1
  663. package/dist/esm/tests/integration/multi-instance-logger.spec.js +0 -291
  664. package/dist/esm/tests/integration/multi-instance-logger.spec.js.map +0 -1
  665. package/dist/esm/tests/integration/nested-div.spec.d.ts +0 -1
  666. package/dist/esm/tests/integration/nested-div.spec.js +0 -20
  667. package/dist/esm/tests/integration/nested-div.spec.js.map +0 -1
  668. package/dist/esm/tests/integration/observe-element-id-format.spec.d.ts +0 -1
  669. package/dist/esm/tests/integration/observe-element-id-format.spec.js +0 -128
  670. package/dist/esm/tests/integration/observe-element-id-format.spec.js.map +0 -1
  671. package/dist/esm/tests/integration/page-addInitScript.spec.d.ts +0 -1
  672. package/dist/esm/tests/integration/page-addInitScript.spec.js +0 -92
  673. package/dist/esm/tests/integration/page-addInitScript.spec.js.map +0 -1
  674. package/dist/esm/tests/integration/page-console.spec.d.ts +0 -1
  675. package/dist/esm/tests/integration/page-console.spec.js +0 -45
  676. package/dist/esm/tests/integration/page-console.spec.js.map +0 -1
  677. package/dist/esm/tests/integration/page-drag-and-drop.spec.d.ts +0 -1
  678. package/dist/esm/tests/integration/page-drag-and-drop.spec.js +0 -435
  679. package/dist/esm/tests/integration/page-drag-and-drop.spec.js.map +0 -1
  680. package/dist/esm/tests/integration/page-extra-http-headers.spec.d.ts +0 -1
  681. package/dist/esm/tests/integration/page-extra-http-headers.spec.js +0 -83
  682. package/dist/esm/tests/integration/page-extra-http-headers.spec.js.map +0 -1
  683. package/dist/esm/tests/integration/page-goto-response.spec.d.ts +0 -1
  684. package/dist/esm/tests/integration/page-goto-response.spec.js +0 -32
  685. package/dist/esm/tests/integration/page-goto-response.spec.js.map +0 -1
  686. package/dist/esm/tests/integration/page-hover.spec.d.ts +0 -1
  687. package/dist/esm/tests/integration/page-hover.spec.js +0 -163
  688. package/dist/esm/tests/integration/page-hover.spec.js.map +0 -1
  689. package/dist/esm/tests/integration/page-screenshot.spec.d.ts +0 -1
  690. package/dist/esm/tests/integration/page-screenshot.spec.js +0 -257
  691. package/dist/esm/tests/integration/page-screenshot.spec.js.map +0 -1
  692. package/dist/esm/tests/integration/page-scroll.spec.d.ts +0 -1
  693. package/dist/esm/tests/integration/page-scroll.spec.js +0 -181
  694. package/dist/esm/tests/integration/page-scroll.spec.js.map +0 -1
  695. package/dist/esm/tests/integration/page-send-cdp.spec.d.ts +0 -1
  696. package/dist/esm/tests/integration/page-send-cdp.spec.js +0 -45
  697. package/dist/esm/tests/integration/page-send-cdp.spec.js.map +0 -1
  698. package/dist/esm/tests/integration/perform-understudy-method.spec.d.ts +0 -1
  699. package/dist/esm/tests/integration/perform-understudy-method.spec.js +0 -61
  700. package/dist/esm/tests/integration/perform-understudy-method.spec.js.map +0 -1
  701. package/dist/esm/tests/integration/setinputfiles.spec.d.ts +0 -1
  702. package/dist/esm/tests/integration/setinputfiles.spec.js +0 -128
  703. package/dist/esm/tests/integration/setinputfiles.spec.js.map +0 -1
  704. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.d.ts +0 -1
  705. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js +0 -156
  706. package/dist/esm/tests/integration/shadow-iframe-oopif.spec.js.map +0 -1
  707. package/dist/esm/tests/integration/shadow-iframe-spif.spec.d.ts +0 -1
  708. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js +0 -155
  709. package/dist/esm/tests/integration/shadow-iframe-spif.spec.js.map +0 -1
  710. package/dist/esm/tests/integration/testUtils.d.ts +0 -40
  711. package/dist/esm/tests/integration/testUtils.js +0 -178
  712. package/dist/esm/tests/integration/testUtils.js.map +0 -1
  713. package/dist/esm/tests/integration/text-selector-innermost.spec.d.ts +0 -1
  714. package/dist/esm/tests/integration/text-selector-innermost.spec.js +0 -103
  715. package/dist/esm/tests/integration/text-selector-innermost.spec.js.map +0 -1
  716. package/dist/esm/tests/integration/timeouts.spec.d.ts +0 -1
  717. package/dist/esm/tests/integration/timeouts.spec.js +0 -307
  718. package/dist/esm/tests/integration/timeouts.spec.js.map +0 -1
  719. package/dist/esm/tests/integration/user-data-dir.spec.d.ts +0 -1
  720. package/dist/esm/tests/integration/user-data-dir.spec.js +0 -42
  721. package/dist/esm/tests/integration/user-data-dir.spec.js.map +0 -1
  722. package/dist/esm/tests/integration/v3.config.d.ts +0 -4
  723. package/dist/esm/tests/integration/v3.config.js +0 -7
  724. package/dist/esm/tests/integration/v3.config.js.map +0 -1
  725. package/dist/esm/tests/integration/v3.dynamic.config.d.ts +0 -4
  726. package/dist/esm/tests/integration/v3.dynamic.config.js +0 -44
  727. package/dist/esm/tests/integration/v3.dynamic.config.js.map +0 -1
  728. package/dist/esm/tests/integration/v3.playwright.config.d.ts +0 -2
  729. package/dist/esm/tests/integration/v3.playwright.config.js +0 -46
  730. package/dist/esm/tests/integration/v3.playwright.config.js.map +0 -1
  731. package/dist/esm/tests/integration/wait-for-selector.spec.d.ts +0 -1
  732. package/dist/esm/tests/integration/wait-for-selector.spec.js +0 -681
  733. package/dist/esm/tests/integration/wait-for-selector.spec.js.map +0 -1
  734. package/dist/esm/tests/integration/wait-for-timeout.spec.d.ts +0 -1
  735. package/dist/esm/tests/integration/wait-for-timeout.spec.js +0 -116
  736. package/dist/esm/tests/integration/wait-for-timeout.spec.js.map +0 -1
  737. package/dist/esm/tests/integration/xpath-for-location-deep.spec.d.ts +0 -1
  738. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js +0 -85
  739. package/dist/esm/tests/integration/xpath-for-location-deep.spec.js.map +0 -1
  740. package/dist/esm/tests/unit/agent-captcha-hooks.test.d.ts +0 -1
  741. package/dist/esm/tests/unit/agent-captcha-hooks.test.js +0 -339
  742. package/dist/esm/tests/unit/agent-captcha-hooks.test.js.map +0 -1
  743. package/dist/esm/tests/unit/agent-execution-model.test.d.ts +0 -1
  744. package/dist/esm/tests/unit/agent-execution-model.test.js +0 -148
  745. package/dist/esm/tests/unit/agent-execution-model.test.js.map +0 -1
  746. package/dist/esm/tests/unit/agent-metrics.test.d.ts +0 -1
  747. package/dist/esm/tests/unit/agent-metrics.test.js +0 -110
  748. package/dist/esm/tests/unit/agent-metrics.test.js.map +0 -1
  749. package/dist/esm/tests/unit/agent-mode-routing.test.d.ts +0 -1
  750. package/dist/esm/tests/unit/agent-mode-routing.test.js +0 -86
  751. package/dist/esm/tests/unit/agent-mode-routing.test.js.map +0 -1
  752. package/dist/esm/tests/unit/agent-system-prompt-variables.test.d.ts +0 -1
  753. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js +0 -21
  754. package/dist/esm/tests/unit/agent-system-prompt-variables.test.js.map +0 -1
  755. package/dist/esm/tests/unit/agent-temperature.test.d.ts +0 -1
  756. package/dist/esm/tests/unit/agent-temperature.test.js +0 -189
  757. package/dist/esm/tests/unit/agent-temperature.test.js.map +0 -1
  758. package/dist/esm/tests/unit/agent-variables-validation.test.d.ts +0 -1
  759. package/dist/esm/tests/unit/agent-variables-validation.test.js +0 -41
  760. package/dist/esm/tests/unit/agent-variables-validation.test.js.map +0 -1
  761. package/dist/esm/tests/unit/aisdk-clients.test.d.ts +0 -1
  762. package/dist/esm/tests/unit/aisdk-clients.test.js +0 -84
  763. package/dist/esm/tests/unit/aisdk-clients.test.js.map +0 -1
  764. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.d.ts +0 -1
  765. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js +0 -245
  766. package/dist/esm/tests/unit/anthropic-cua-adaptive-thinking.test.js.map +0 -1
  767. package/dist/esm/tests/unit/api-client-observe-variables.test.d.ts +0 -1
  768. package/dist/esm/tests/unit/api-client-observe-variables.test.js +0 -131
  769. package/dist/esm/tests/unit/api-client-observe-variables.test.js.map +0 -1
  770. package/dist/esm/tests/unit/api-multiregion.test.d.ts +0 -1
  771. package/dist/esm/tests/unit/api-multiregion.test.js +0 -56
  772. package/dist/esm/tests/unit/api-multiregion.test.js.map +0 -1
  773. package/dist/esm/tests/unit/api-optional-model-api-key.test.d.ts +0 -1
  774. package/dist/esm/tests/unit/api-optional-model-api-key.test.js +0 -153
  775. package/dist/esm/tests/unit/api-optional-model-api-key.test.js.map +0 -1
  776. package/dist/esm/tests/unit/api-variables-schema.test.d.ts +0 -1
  777. package/dist/esm/tests/unit/api-variables-schema.test.js +0 -60
  778. package/dist/esm/tests/unit/api-variables-schema.test.js.map +0 -1
  779. package/dist/esm/tests/unit/browserbase-session-accessors.test.d.ts +0 -1
  780. package/dist/esm/tests/unit/browserbase-session-accessors.test.js +0 -140
  781. package/dist/esm/tests/unit/browserbase-session-accessors.test.js.map +0 -1
  782. package/dist/esm/tests/unit/cache-llm-resolution.test.d.ts +0 -1
  783. package/dist/esm/tests/unit/cache-llm-resolution.test.js +0 -184
  784. package/dist/esm/tests/unit/cache-llm-resolution.test.js.map +0 -1
  785. package/dist/esm/tests/unit/captcha-solver.test.d.ts +0 -1
  786. package/dist/esm/tests/unit/captcha-solver.test.js +0 -152
  787. package/dist/esm/tests/unit/captcha-solver.test.js.map +0 -1
  788. package/dist/esm/tests/unit/cdp-connection-close.test.d.ts +0 -1
  789. package/dist/esm/tests/unit/cdp-connection-close.test.js +0 -72
  790. package/dist/esm/tests/unit/cdp-connection-close.test.js.map +0 -1
  791. package/dist/esm/tests/unit/context-extra-http-headers.test.d.ts +0 -1
  792. package/dist/esm/tests/unit/context-extra-http-headers.test.js +0 -56
  793. package/dist/esm/tests/unit/context-extra-http-headers.test.js.map +0 -1
  794. package/dist/esm/tests/unit/cookies.test.d.ts +0 -1
  795. package/dist/esm/tests/unit/cookies.test.js +0 -909
  796. package/dist/esm/tests/unit/cookies.test.js.map +0 -1
  797. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.d.ts +0 -1
  798. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js +0 -93
  799. package/dist/esm/tests/unit/flowlogger-capturing-cdp.test.js.map +0 -1
  800. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.d.ts +0 -1
  801. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js +0 -41
  802. package/dist/esm/tests/unit/flowlogger-capturing-llm.test.js.map +0 -1
  803. package/dist/esm/tests/unit/flowlogger-eventstore.test.d.ts +0 -1
  804. package/dist/esm/tests/unit/flowlogger-eventstore.test.js +0 -248
  805. package/dist/esm/tests/unit/flowlogger-eventstore.test.js.map +0 -1
  806. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.d.ts +0 -1
  807. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js +0 -58
  808. package/dist/esm/tests/unit/frame-registry-oopif-adoption.test.js.map +0 -1
  809. package/dist/esm/tests/unit/helpers/mockCDPSession.d.ts +0 -19
  810. package/dist/esm/tests/unit/helpers/mockCDPSession.js +0 -25
  811. package/dist/esm/tests/unit/helpers/mockCDPSession.js.map +0 -1
  812. package/dist/esm/tests/unit/inference-temperature.test.d.ts +0 -1
  813. package/dist/esm/tests/unit/inference-temperature.test.js +0 -63
  814. package/dist/esm/tests/unit/inference-temperature.test.js.map +0 -1
  815. package/dist/esm/tests/unit/llm-middleware.test.d.ts +0 -1
  816. package/dist/esm/tests/unit/llm-middleware.test.js +0 -460
  817. package/dist/esm/tests/unit/llm-middleware.test.js.map +0 -1
  818. package/dist/esm/tests/unit/llm-provider.test.d.ts +0 -1
  819. package/dist/esm/tests/unit/llm-provider.test.js +0 -62
  820. package/dist/esm/tests/unit/llm-provider.test.js.map +0 -1
  821. package/dist/esm/tests/unit/microsoft-cua-client.test.d.ts +0 -1
  822. package/dist/esm/tests/unit/microsoft-cua-client.test.js +0 -84
  823. package/dist/esm/tests/unit/microsoft-cua-client.test.js.map +0 -1
  824. package/dist/esm/tests/unit/model-deprecation.test.d.ts +0 -1
  825. package/dist/esm/tests/unit/model-deprecation.test.js +0 -140
  826. package/dist/esm/tests/unit/model-deprecation.test.js.map +0 -1
  827. package/dist/esm/tests/unit/model-utils.test.d.ts +0 -1
  828. package/dist/esm/tests/unit/model-utils.test.js +0 -40
  829. package/dist/esm/tests/unit/model-utils.test.js.map +0 -1
  830. package/dist/esm/tests/unit/openai-compatible-temperature.test.d.ts +0 -1
  831. package/dist/esm/tests/unit/openai-compatible-temperature.test.js +0 -82
  832. package/dist/esm/tests/unit/openai-compatible-temperature.test.js.map +0 -1
  833. package/dist/esm/tests/unit/openai-cua-client.test.d.ts +0 -1
  834. package/dist/esm/tests/unit/openai-cua-client.test.js +0 -69
  835. package/dist/esm/tests/unit/openai-cua-client.test.js.map +0 -1
  836. package/dist/esm/tests/unit/page-extra-http-headers.test.d.ts +0 -1
  837. package/dist/esm/tests/unit/page-extra-http-headers.test.js +0 -90
  838. package/dist/esm/tests/unit/page-extra-http-headers.test.js.map +0 -1
  839. package/dist/esm/tests/unit/page-snapshot.test.d.ts +0 -1
  840. package/dist/esm/tests/unit/page-snapshot.test.js +0 -40
  841. package/dist/esm/tests/unit/page-snapshot.test.js.map +0 -1
  842. package/dist/esm/tests/unit/prompt-observe-variables.test.d.ts +0 -1
  843. package/dist/esm/tests/unit/prompt-observe-variables.test.js +0 -23
  844. package/dist/esm/tests/unit/prompt-observe-variables.test.js.map +0 -1
  845. package/dist/esm/tests/unit/public-api/export-surface.test.d.ts +0 -1
  846. package/dist/esm/tests/unit/public-api/export-surface.test.js +0 -72
  847. package/dist/esm/tests/unit/public-api/export-surface.test.js.map +0 -1
  848. package/dist/esm/tests/unit/public-api/llm-and-agents.test.d.ts +0 -1
  849. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js +0 -144
  850. package/dist/esm/tests/unit/public-api/llm-and-agents.test.js.map +0 -1
  851. package/dist/esm/tests/unit/public-api/public-error-types.test.d.ts +0 -62
  852. package/dist/esm/tests/unit/public-api/public-error-types.test.js +0 -74
  853. package/dist/esm/tests/unit/public-api/public-error-types.test.js.map +0 -1
  854. package/dist/esm/tests/unit/public-api/public-types.test.d.ts +0 -1
  855. package/dist/esm/tests/unit/public-api/public-types.test.js +0 -97
  856. package/dist/esm/tests/unit/public-api/public-types.test.js.map +0 -1
  857. package/dist/esm/tests/unit/public-api/runtime-utils.test.d.ts +0 -1
  858. package/dist/esm/tests/unit/public-api/runtime-utils.test.js +0 -25
  859. package/dist/esm/tests/unit/public-api/runtime-utils.test.js.map +0 -1
  860. package/dist/esm/tests/unit/public-api/schema-utils.test.d.ts +0 -1
  861. package/dist/esm/tests/unit/public-api/schema-utils.test.js +0 -60
  862. package/dist/esm/tests/unit/public-api/schema-utils.test.js.map +0 -1
  863. package/dist/esm/tests/unit/public-api/timeout-error-types.test.d.ts +0 -1
  864. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js +0 -86
  865. package/dist/esm/tests/unit/public-api/timeout-error-types.test.js.map +0 -1
  866. package/dist/esm/tests/unit/public-api/tool-type-export.test.d.ts +0 -1
  867. package/dist/esm/tests/unit/public-api/tool-type-export.test.js +0 -30
  868. package/dist/esm/tests/unit/public-api/tool-type-export.test.js.map +0 -1
  869. package/dist/esm/tests/unit/public-api/v3-core.test.d.ts +0 -1
  870. package/dist/esm/tests/unit/public-api/v3-core.test.js +0 -73
  871. package/dist/esm/tests/unit/public-api/v3-core.test.js.map +0 -1
  872. package/dist/esm/tests/unit/safety-confirmation.test.d.ts +0 -1
  873. package/dist/esm/tests/unit/safety-confirmation.test.js +0 -108
  874. package/dist/esm/tests/unit/safety-confirmation.test.js.map +0 -1
  875. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.d.ts +0 -1
  876. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js +0 -396
  877. package/dist/esm/tests/unit/snapshot-a11y-resolvers.test.js.map +0 -1
  878. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.d.ts +0 -1
  879. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js +0 -304
  880. package/dist/esm/tests/unit/snapshot-a11y-tree-utils.test.js.map +0 -1
  881. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.d.ts +0 -1
  882. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js +0 -469
  883. package/dist/esm/tests/unit/snapshot-capture-orchestration.test.js.map +0 -1
  884. package/dist/esm/tests/unit/snapshot-cbor.test.d.ts +0 -1
  885. package/dist/esm/tests/unit/snapshot-cbor.test.js +0 -202
  886. package/dist/esm/tests/unit/snapshot-cbor.test.js.map +0 -1
  887. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.d.ts +0 -1
  888. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js +0 -218
  889. package/dist/esm/tests/unit/snapshot-dom-session-builders.test.js.map +0 -1
  890. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.d.ts +0 -1
  891. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js +0 -105
  892. package/dist/esm/tests/unit/snapshot-dom-tree-utils.test.js.map +0 -1
  893. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.d.ts +0 -1
  894. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js +0 -87
  895. package/dist/esm/tests/unit/snapshot-focus-selectors-utils.test.js.map +0 -1
  896. package/dist/esm/tests/unit/snapshot-frame-merge.test.d.ts +0 -1
  897. package/dist/esm/tests/unit/snapshot-frame-merge.test.js +0 -333
  898. package/dist/esm/tests/unit/snapshot-frame-merge.test.js.map +0 -1
  899. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.d.ts +0 -1
  900. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js +0 -82
  901. package/dist/esm/tests/unit/snapshot-tree-format-utils.test.js.map +0 -1
  902. package/dist/esm/tests/unit/snapshot-xpath-utils.test.d.ts +0 -1
  903. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js +0 -72
  904. package/dist/esm/tests/unit/snapshot-xpath-utils.test.js.map +0 -1
  905. package/dist/esm/tests/unit/timeout-handlers.test.d.ts +0 -1
  906. package/dist/esm/tests/unit/timeout-handlers.test.js +0 -862
  907. package/dist/esm/tests/unit/timeout-handlers.test.js.map +0 -1
  908. package/dist/esm/tests/unit/understudy-command-exception.test.d.ts +0 -1
  909. package/dist/esm/tests/unit/understudy-command-exception.test.js +0 -55
  910. package/dist/esm/tests/unit/understudy-command-exception.test.js.map +0 -1
  911. package/dist/esm/tests/unit/xpath-parser.test.d.ts +0 -1
  912. package/dist/esm/tests/unit/xpath-parser.test.js +0 -309
  913. package/dist/esm/tests/unit/xpath-parser.test.js.map +0 -1
  914. package/dist/esm/tests/unit/xpath-resolver.test.d.ts +0 -1
  915. package/dist/esm/tests/unit/xpath-resolver.test.js +0 -78
  916. package/dist/esm/tests/unit/xpath-resolver.test.js.map +0 -1
  917. package/dist/esm/tests/unit/zod-enum-compatibility.test.d.ts +0 -1
  918. package/dist/esm/tests/unit/zod-enum-compatibility.test.js +0 -114
  919. package/dist/esm/tests/unit/zod-enum-compatibility.test.js.map +0 -1
@@ -1,127 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const v3_js_1 = require("../../lib/v3/v3.js");
5
- const v3_config_js_1 = require("./v3.config.js");
6
- test_1.test.describe("Locator input methods (fill, type, hover, isVisible, isChecked)", () => {
7
- let v3;
8
- test_1.test.beforeEach(async () => {
9
- v3 = new v3_js_1.V3(v3_config_js_1.v3TestConfig);
10
- await v3.init();
11
- });
12
- test_1.test.afterEach(async () => {
13
- await v3?.close?.().catch((e) => {
14
- void e;
15
- });
16
- });
17
- (0, test_1.test)("Locator.fill() sets input value directly", async () => {
18
- const page = v3.context.pages()[0];
19
- await page.goto("data:text/html," +
20
- encodeURIComponent(`<!doctype html><html><body>
21
- <input id="name" type="text" />
22
- <div id="out"></div>
23
- </body></html>`));
24
- const input = page.mainFrame().locator("#name");
25
- await input.fill("Hello World");
26
- const value = await input.inputValue();
27
- (0, test_1.expect)(value).toBe("Hello World");
28
- });
29
- (0, test_1.test)("Locator.type() types text character by character", async () => {
30
- const page = v3.context.pages()[0];
31
- await page.goto("data:text/html," +
32
- encodeURIComponent(`<!doctype html><html><body>
33
- <input id="search" type="text" />
34
- </body></html>`));
35
- const input = page.mainFrame().locator("#search");
36
- await input.type("test123", { delay: 10 });
37
- const value = await input.inputValue();
38
- (0, test_1.expect)(value).toBe("test123");
39
- });
40
- (0, test_1.test)("Locator.hover() moves mouse to element center", async () => {
41
- const page = v3.context.pages()[0];
42
- await page.goto("data:text/html," +
43
- encodeURIComponent(`<!doctype html><html><body>
44
- <button id="btn" onmouseover="this.dataset.hovered='true'" onmouseout="this.dataset.hovered='false'">Hover Me</button>
45
- </body></html>`));
46
- const btn = page.mainFrame().locator("#btn");
47
- await btn.hover();
48
- const hovered = await page.mainFrame().evaluate(() => {
49
- const b = document.getElementById("btn");
50
- return b?.dataset.hovered === "true";
51
- });
52
- (0, test_1.expect)(hovered).toBe(true);
53
- });
54
- (0, test_1.test)("Locator.isVisible() returns true for visible elements", async () => {
55
- const page = v3.context.pages()[0];
56
- await page.goto("data:text/html," +
57
- encodeURIComponent(`<!doctype html><html><body>
58
- <div id="visible">I am visible</div>
59
- <div id="hidden" style="display:none">I am hidden</div>
60
- <div id="invisible" style="visibility:hidden">I am invisible</div>
61
- <div id="transparent" style="opacity:0">I am transparent</div>
62
- <div id="zero-size" style="width:0;height:0">Zero size</div>
63
- </body></html>`));
64
- const visible = await page.mainFrame().locator("#visible").isVisible();
65
- (0, test_1.expect)(visible).toBe(true);
66
- const hidden = await page.mainFrame().locator("#hidden").isVisible();
67
- (0, test_1.expect)(hidden).toBe(false);
68
- const invisible = await page.mainFrame().locator("#invisible").isVisible();
69
- (0, test_1.expect)(invisible).toBe(false);
70
- const transparent = await page
71
- .mainFrame()
72
- .locator("#transparent")
73
- .isVisible();
74
- (0, test_1.expect)(transparent).toBe(false);
75
- const zeroSize = await page.mainFrame().locator("#zero-size").isVisible();
76
- (0, test_1.expect)(zeroSize).toBe(false);
77
- });
78
- (0, test_1.test)("Locator.isChecked() detects checkbox state", async () => {
79
- const page = v3.context.pages()[0];
80
- await page.goto("data:text/html," +
81
- encodeURIComponent(`<!doctype html><html><body>
82
- <input id="checked" type="checkbox" checked />
83
- <input id="unchecked" type="checkbox" />
84
- <input id="radio-selected" type="radio" name="opt" checked />
85
- <input id="radio-unselected" type="radio" name="opt" />
86
- </body></html>`));
87
- const checked = await page.mainFrame().locator("#checked").isChecked();
88
- (0, test_1.expect)(checked).toBe(true);
89
- const unchecked = await page.mainFrame().locator("#unchecked").isChecked();
90
- (0, test_1.expect)(unchecked).toBe(false);
91
- const radioSelected = await page
92
- .mainFrame()
93
- .locator("#radio-selected")
94
- .isChecked();
95
- (0, test_1.expect)(radioSelected).toBe(true);
96
- const radioUnselected = await page
97
- .mainFrame()
98
- .locator("#radio-unselected")
99
- .isChecked();
100
- (0, test_1.expect)(radioUnselected).toBe(false);
101
- });
102
- (0, test_1.test)("Locator.fill() on textarea", async () => {
103
- const page = v3.context.pages()[0];
104
- await page.goto("data:text/html," +
105
- encodeURIComponent(`<!doctype html><html><body>
106
- <textarea id="ta"></textarea>
107
- </body></html>`));
108
- const ta = page.mainFrame().locator("#ta");
109
- await ta.fill("Multi\nline\ntext");
110
- const value = await ta.inputValue();
111
- (0, test_1.expect)(value).toBe("Multi\nline\ntext");
112
- });
113
- (0, test_1.test)("Locator.fill() clears and sets new value", async () => {
114
- const page = v3.context.pages()[0];
115
- await page.goto("data:text/html," +
116
- encodeURIComponent(`<!doctype html><html><body>
117
- <input id="inp" type="text" value="initial" />
118
- </body></html>`));
119
- const inp = page.mainFrame().locator("#inp");
120
- let value = await inp.inputValue();
121
- (0, test_1.expect)(value).toBe("initial");
122
- await inp.fill("replaced");
123
- value = await inp.inputValue();
124
- (0, test_1.expect)(value).toBe("replaced");
125
- });
126
- });
127
- //# sourceMappingURL=locator-input-methods.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locator-input-methods.spec.js","sourceRoot":"","sources":["../../../../tests/integration/locator-input-methods.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, test } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\n\ntest.describe(\"Locator input methods (fill, type, hover, isVisible, isChecked)\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3(v3TestConfig);\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch((e) => {\n void e;\n });\n });\n\n test(\"Locator.fill() sets input value directly\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <input id=\"name\" type=\"text\" />\n <div id=\"out\"></div>\n </body></html>`,\n ),\n );\n\n const input = page.mainFrame().locator(\"#name\");\n await input.fill(\"Hello World\");\n\n const value = await input.inputValue();\n expect(value).toBe(\"Hello World\");\n });\n\n test(\"Locator.type() types text character by character\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <input id=\"search\" type=\"text\" />\n </body></html>`,\n ),\n );\n\n const input = page.mainFrame().locator(\"#search\");\n await input.type(\"test123\", { delay: 10 });\n\n const value = await input.inputValue();\n expect(value).toBe(\"test123\");\n });\n\n test(\"Locator.hover() moves mouse to element center\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <button id=\"btn\" onmouseover=\"this.dataset.hovered='true'\" onmouseout=\"this.dataset.hovered='false'\">Hover Me</button>\n </body></html>`,\n ),\n );\n\n const btn = page.mainFrame().locator(\"#btn\");\n await btn.hover();\n\n const hovered = await page.mainFrame().evaluate(() => {\n const b = document.getElementById(\"btn\") as HTMLButtonElement | null;\n return b?.dataset.hovered === \"true\";\n });\n\n expect(hovered).toBe(true);\n });\n\n test(\"Locator.isVisible() returns true for visible elements\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <div id=\"visible\">I am visible</div>\n <div id=\"hidden\" style=\"display:none\">I am hidden</div>\n <div id=\"invisible\" style=\"visibility:hidden\">I am invisible</div>\n <div id=\"transparent\" style=\"opacity:0\">I am transparent</div>\n <div id=\"zero-size\" style=\"width:0;height:0\">Zero size</div>\n </body></html>`,\n ),\n );\n\n const visible = await page.mainFrame().locator(\"#visible\").isVisible();\n expect(visible).toBe(true);\n\n const hidden = await page.mainFrame().locator(\"#hidden\").isVisible();\n expect(hidden).toBe(false);\n\n const invisible = await page.mainFrame().locator(\"#invisible\").isVisible();\n expect(invisible).toBe(false);\n\n const transparent = await page\n .mainFrame()\n .locator(\"#transparent\")\n .isVisible();\n expect(transparent).toBe(false);\n\n const zeroSize = await page.mainFrame().locator(\"#zero-size\").isVisible();\n expect(zeroSize).toBe(false);\n });\n\n test(\"Locator.isChecked() detects checkbox state\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <input id=\"checked\" type=\"checkbox\" checked />\n <input id=\"unchecked\" type=\"checkbox\" />\n <input id=\"radio-selected\" type=\"radio\" name=\"opt\" checked />\n <input id=\"radio-unselected\" type=\"radio\" name=\"opt\" />\n </body></html>`,\n ),\n );\n\n const checked = await page.mainFrame().locator(\"#checked\").isChecked();\n expect(checked).toBe(true);\n\n const unchecked = await page.mainFrame().locator(\"#unchecked\").isChecked();\n expect(unchecked).toBe(false);\n\n const radioSelected = await page\n .mainFrame()\n .locator(\"#radio-selected\")\n .isChecked();\n expect(radioSelected).toBe(true);\n\n const radioUnselected = await page\n .mainFrame()\n .locator(\"#radio-unselected\")\n .isChecked();\n expect(radioUnselected).toBe(false);\n });\n\n test(\"Locator.fill() on textarea\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <textarea id=\"ta\"></textarea>\n </body></html>`,\n ),\n );\n\n const ta = page.mainFrame().locator(\"#ta\");\n await ta.fill(\"Multi\\nline\\ntext\");\n\n const value = await ta.inputValue();\n expect(value).toBe(\"Multi\\nline\\ntext\");\n });\n\n test(\"Locator.fill() clears and sets new value\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <input id=\"inp\" type=\"text\" value=\"initial\" />\n </body></html>`,\n ),\n );\n\n const inp = page.mainFrame().locator(\"#inp\");\n\n let value = await inp.inputValue();\n expect(value).toBe(\"initial\");\n\n await inp.fill(\"replaced\");\n value = await inp.inputValue();\n expect(value).toBe(\"replaced\");\n });\n});\n"]}
@@ -1 +0,0 @@
1
- export {};
@@ -1,175 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const v3_js_1 = require("../../lib/v3/v3.js");
5
- const v3_dynamic_config_js_1 = require("./v3.dynamic.config.js");
6
- const testUtils_js_1 = require("./testUtils.js");
7
- test_1.test.describe("Locator nth() method tests", () => {
8
- let v3;
9
- test_1.test.beforeEach(async () => {
10
- v3 = new v3_js_1.V3(v3_dynamic_config_js_1.v3DynamicTestConfig);
11
- await v3.init();
12
- });
13
- test_1.test.afterEach(async () => {
14
- await (0, testUtils_js_1.closeV3)(v3);
15
- });
16
- (0, test_1.test)("nth() returns correct element for CSS selectors", async () => {
17
- const page = v3.context.pages()[0];
18
- await page.goto("data:text/html," +
19
- encodeURIComponent('<div class="test" id="first">1</div>' +
20
- '<div class="test" id="second">2</div>' +
21
- '<div class="test" id="third">3</div>' +
22
- '<span id="other">4</span>'));
23
- // Test nth() with CSS selectors
24
- const locator0 = page.mainFrame().locator(".test").nth(0);
25
- const text0 = await locator0.textContent();
26
- (0, test_1.expect)(text0).toBe("1");
27
- const locator1 = page.mainFrame().locator(".test").nth(1);
28
- const text1 = await locator1.textContent();
29
- (0, test_1.expect)(text1).toBe("2");
30
- const locator2 = page.mainFrame().locator(".test").nth(2);
31
- const text2 = await locator2.textContent();
32
- (0, test_1.expect)(text2).toBe("3");
33
- });
34
- (0, test_1.test)("nth() returns correct element for XPath selectors", async () => {
35
- const page = v3.context.pages()[0];
36
- await page.goto("data:text/html," +
37
- encodeURIComponent('<button id="btn1">Button 1</button>' +
38
- '<button id="btn2">Button 2</button>' +
39
- '<button id="btn3">Button 3</button>'));
40
- // Test nth() with XPath selectors
41
- const locator0 = page.mainFrame().locator("//button").nth(0);
42
- const text0 = await locator0.textContent();
43
- (0, test_1.expect)(text0).toBe("Button 1");
44
- const locator1 = page.mainFrame().locator("//button").nth(1);
45
- const text1 = await locator1.textContent();
46
- (0, test_1.expect)(text1).toBe("Button 2");
47
- const locator2 = page.mainFrame().locator("//button").nth(2);
48
- const text2 = await locator2.textContent();
49
- (0, test_1.expect)(text2).toBe("Button 3");
50
- });
51
- (0, test_1.test)("nth() returns correct element for text selectors", async () => {
52
- const page = v3.context.pages()[0];
53
- await page.goto("data:text/html," +
54
- encodeURIComponent('<div id="d1">Click me</div>' +
55
- '<button id="b1">Click me</button>' +
56
- '<span id="s1">Click me</span>'));
57
- // Test nth() with text selectors
58
- const locator0 = page.mainFrame().locator("text=Click me").nth(0);
59
- const text0 = await locator0.textContent();
60
- (0, test_1.expect)(text0).toBe("Click me");
61
- const locator1 = page.mainFrame().locator("text=Click me").nth(1);
62
- const text1 = await locator1.textContent();
63
- (0, test_1.expect)(text1).toBe("Click me");
64
- const locator2 = page.mainFrame().locator("text=Click me").nth(2);
65
- const text2 = await locator2.textContent();
66
- (0, test_1.expect)(text2).toBe("Click me");
67
- });
68
- (0, test_1.test)("nth() with shadow DOM", async () => {
69
- const page = v3.context.pages()[0];
70
- await page.goto("data:text/html," +
71
- encodeURIComponent('<div id="host"></div>' +
72
- "<script>" +
73
- 'const host = document.getElementById("host");' +
74
- 'const shadow = host.attachShadow({mode: "open"});' +
75
- 'shadow.innerHTML = "<button>Shadow Button 1</button><button>Shadow Button 2</button><button>Shadow Button 3</button>";' +
76
- "</script>"), { waitUntil: "load", timeoutMs: 30000 });
77
- // Wait a bit for shadow DOM to be attached
78
- await new Promise((resolve) => setTimeout(resolve, 100));
79
- // Test nth() with shadow DOM elements
80
- const locator0 = page.mainFrame().locator("button").nth(0);
81
- const text0 = await locator0.textContent();
82
- (0, test_1.expect)(text0).toBe("Shadow Button 1");
83
- const locator1 = page.mainFrame().locator("button").nth(1);
84
- const text1 = await locator1.textContent();
85
- (0, test_1.expect)(text1).toBe("Shadow Button 2");
86
- const locator2 = page.mainFrame().locator("button").nth(2);
87
- const text2 = await locator2.textContent();
88
- (0, test_1.expect)(text2).toBe("Shadow Button 3");
89
- });
90
- (0, test_1.test)("nth() with out of bounds index throws error", async () => {
91
- const page = v3.context.pages()[0];
92
- await page.goto("data:text/html," +
93
- encodeURIComponent('<div class="test">1</div>' + '<div class="test">2</div>'));
94
- // Test with out of bounds index - should throw an error
95
- const locator = page.mainFrame().locator(".test").nth(5);
96
- let error = null;
97
- try {
98
- await locator.textContent();
99
- }
100
- catch (e) {
101
- error = e;
102
- }
103
- (0, test_1.expect)(error).not.toBeNull();
104
- });
105
- (0, test_1.test)("nth() works with complex CSS selectors", async () => {
106
- const page = v3.context.pages()[0];
107
- await page.goto("data:text/html," +
108
- encodeURIComponent('<div class="container">' +
109
- '<span class="item">1</span>' +
110
- '<span class="item">2</span>' +
111
- "</div>" +
112
- "<div>" +
113
- '<span class="item">3</span>' +
114
- "</div>"));
115
- // Test nth() with complex CSS selectors
116
- const locator0 = page.mainFrame().locator(".container .item").nth(0);
117
- const text0 = await locator0.textContent();
118
- (0, test_1.expect)(text0).toBe("1");
119
- const locator1 = page.mainFrame().locator(".container .item").nth(1);
120
- const text1 = await locator1.textContent();
121
- (0, test_1.expect)(text1).toBe("2");
122
- });
123
- (0, test_1.test)("nth() can be chained with other locator methods", async () => {
124
- const page = v3.context.pages()[0];
125
- await page.goto("data:text/html," +
126
- encodeURIComponent('<div class="test">First</div>' +
127
- '<div class="test">Second</div>' +
128
- '<div class="test">Third</div>'));
129
- // Test that nth() returns a Locator that can be used for other actions
130
- const locator = page.mainFrame().locator(".test").nth(1);
131
- const text = await locator.textContent();
132
- (0, test_1.expect)(text).toBe("Second");
133
- // Verify it's visible
134
- const isVisible = await locator.isVisible();
135
- (0, test_1.expect)(isVisible).toBe(true);
136
- });
137
- (0, test_1.test)("nth(0) is equivalent to first()", async () => {
138
- const page = v3.context.pages()[0];
139
- await page.goto("data:text/html," +
140
- encodeURIComponent('<div class="test">First</div>' +
141
- '<div class="test">Second</div>' +
142
- '<div class="test">Third</div>'));
143
- // Verify nth(0) returns the same element as first()
144
- const nthLocator = page.mainFrame().locator(".test").nth(0);
145
- const nthText = await nthLocator.textContent();
146
- const firstLocator = page.mainFrame().locator(".test").first();
147
- const firstText = await firstLocator.textContent();
148
- (0, test_1.expect)(nthText).toBe(firstText);
149
- (0, test_1.expect)(nthText).toBe("First");
150
- });
151
- (0, test_1.test)("nth() works correctly with iframe selectors", async () => {
152
- const page = v3.context.pages()[0];
153
- await page.goto("data:text/html," +
154
- encodeURIComponent('<button id="main1">Main Button 1</button>' +
155
- '<button id="main2">Main Button 2</button>' +
156
- '<iframe id="frame1"></iframe>' +
157
- "<script>" +
158
- 'const frame = document.getElementById("frame1");' +
159
- "const doc = frame.contentDocument;" +
160
- "doc.open();" +
161
- 'doc.write("<button>Frame Button 1</button><button>Frame Button 2</button>");' +
162
- "doc.close();" +
163
- "</script>"));
164
- // Wait for iframe to load
165
- await new Promise((resolve) => setTimeout(resolve, 100));
166
- // Test that nth() works correctly with buttons in the main frame
167
- const mainLocator0 = page.mainFrame().locator("button").nth(0);
168
- const mainText0 = await mainLocator0.textContent();
169
- (0, test_1.expect)(mainText0).toBe("Main Button 1");
170
- const mainLocator1 = page.mainFrame().locator("button").nth(1);
171
- const mainText1 = await mainLocator1.textContent();
172
- (0, test_1.expect)(mainText1).toBe("Main Button 2");
173
- });
174
- });
175
- //# sourceMappingURL=locator-nth.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locator-nth.spec.js","sourceRoot":"","sources":["../../../../tests/integration/locator-nth.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, test } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { v3DynamicTestConfig } from \"./v3.dynamic.config.js\";\nimport { closeV3 } from \"./testUtils.js\";\n\ntest.describe(\"Locator nth() method tests\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3(v3DynamicTestConfig);\n await v3.init();\n });\n\n test.afterEach(async () => {\n await closeV3(v3);\n });\n\n test(\"nth() returns correct element for CSS selectors\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<div class=\"test\" id=\"first\">1</div>' +\n '<div class=\"test\" id=\"second\">2</div>' +\n '<div class=\"test\" id=\"third\">3</div>' +\n '<span id=\"other\">4</span>',\n ),\n );\n\n // Test nth() with CSS selectors\n const locator0 = page.mainFrame().locator(\".test\").nth(0);\n const text0 = await locator0.textContent();\n expect(text0).toBe(\"1\");\n\n const locator1 = page.mainFrame().locator(\".test\").nth(1);\n const text1 = await locator1.textContent();\n expect(text1).toBe(\"2\");\n\n const locator2 = page.mainFrame().locator(\".test\").nth(2);\n const text2 = await locator2.textContent();\n expect(text2).toBe(\"3\");\n });\n\n test(\"nth() returns correct element for XPath selectors\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<button id=\"btn1\">Button 1</button>' +\n '<button id=\"btn2\">Button 2</button>' +\n '<button id=\"btn3\">Button 3</button>',\n ),\n );\n\n // Test nth() with XPath selectors\n const locator0 = page.mainFrame().locator(\"//button\").nth(0);\n const text0 = await locator0.textContent();\n expect(text0).toBe(\"Button 1\");\n\n const locator1 = page.mainFrame().locator(\"//button\").nth(1);\n const text1 = await locator1.textContent();\n expect(text1).toBe(\"Button 2\");\n\n const locator2 = page.mainFrame().locator(\"//button\").nth(2);\n const text2 = await locator2.textContent();\n expect(text2).toBe(\"Button 3\");\n });\n\n test(\"nth() returns correct element for text selectors\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<div id=\"d1\">Click me</div>' +\n '<button id=\"b1\">Click me</button>' +\n '<span id=\"s1\">Click me</span>',\n ),\n );\n\n // Test nth() with text selectors\n const locator0 = page.mainFrame().locator(\"text=Click me\").nth(0);\n const text0 = await locator0.textContent();\n expect(text0).toBe(\"Click me\");\n\n const locator1 = page.mainFrame().locator(\"text=Click me\").nth(1);\n const text1 = await locator1.textContent();\n expect(text1).toBe(\"Click me\");\n\n const locator2 = page.mainFrame().locator(\"text=Click me\").nth(2);\n const text2 = await locator2.textContent();\n expect(text2).toBe(\"Click me\");\n });\n\n test(\"nth() with shadow DOM\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<div id=\"host\"></div>' +\n \"<script>\" +\n 'const host = document.getElementById(\"host\");' +\n 'const shadow = host.attachShadow({mode: \"open\"});' +\n 'shadow.innerHTML = \"<button>Shadow Button 1</button><button>Shadow Button 2</button><button>Shadow Button 3</button>\";' +\n \"</script>\",\n ),\n { waitUntil: \"load\", timeoutMs: 30000 },\n );\n\n // Wait a bit for shadow DOM to be attached\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n // Test nth() with shadow DOM elements\n const locator0 = page.mainFrame().locator(\"button\").nth(0);\n const text0 = await locator0.textContent();\n expect(text0).toBe(\"Shadow Button 1\");\n\n const locator1 = page.mainFrame().locator(\"button\").nth(1);\n const text1 = await locator1.textContent();\n expect(text1).toBe(\"Shadow Button 2\");\n\n const locator2 = page.mainFrame().locator(\"button\").nth(2);\n const text2 = await locator2.textContent();\n expect(text2).toBe(\"Shadow Button 3\");\n });\n\n test(\"nth() with out of bounds index throws error\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<div class=\"test\">1</div>' + '<div class=\"test\">2</div>',\n ),\n );\n\n // Test with out of bounds index - should throw an error\n const locator = page.mainFrame().locator(\".test\").nth(5);\n let error = null;\n try {\n await locator.textContent();\n } catch (e) {\n error = e;\n }\n\n expect(error).not.toBeNull();\n });\n\n test(\"nth() works with complex CSS selectors\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<div class=\"container\">' +\n '<span class=\"item\">1</span>' +\n '<span class=\"item\">2</span>' +\n \"</div>\" +\n \"<div>\" +\n '<span class=\"item\">3</span>' +\n \"</div>\",\n ),\n );\n\n // Test nth() with complex CSS selectors\n const locator0 = page.mainFrame().locator(\".container .item\").nth(0);\n const text0 = await locator0.textContent();\n expect(text0).toBe(\"1\");\n\n const locator1 = page.mainFrame().locator(\".container .item\").nth(1);\n const text1 = await locator1.textContent();\n expect(text1).toBe(\"2\");\n });\n\n test(\"nth() can be chained with other locator methods\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<div class=\"test\">First</div>' +\n '<div class=\"test\">Second</div>' +\n '<div class=\"test\">Third</div>',\n ),\n );\n\n // Test that nth() returns a Locator that can be used for other actions\n const locator = page.mainFrame().locator(\".test\").nth(1);\n const text = await locator.textContent();\n expect(text).toBe(\"Second\");\n\n // Verify it's visible\n const isVisible = await locator.isVisible();\n expect(isVisible).toBe(true);\n });\n\n test(\"nth(0) is equivalent to first()\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<div class=\"test\">First</div>' +\n '<div class=\"test\">Second</div>' +\n '<div class=\"test\">Third</div>',\n ),\n );\n\n // Verify nth(0) returns the same element as first()\n const nthLocator = page.mainFrame().locator(\".test\").nth(0);\n const nthText = await nthLocator.textContent();\n\n const firstLocator = page.mainFrame().locator(\".test\").first();\n const firstText = await firstLocator.textContent();\n\n expect(nthText).toBe(firstText);\n expect(nthText).toBe(\"First\");\n });\n\n test(\"nth() works correctly with iframe selectors\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n '<button id=\"main1\">Main Button 1</button>' +\n '<button id=\"main2\">Main Button 2</button>' +\n '<iframe id=\"frame1\"></iframe>' +\n \"<script>\" +\n 'const frame = document.getElementById(\"frame1\");' +\n \"const doc = frame.contentDocument;\" +\n \"doc.open();\" +\n 'doc.write(\"<button>Frame Button 1</button><button>Frame Button 2</button>\");' +\n \"doc.close();\" +\n \"</script>\",\n ),\n );\n\n // Wait for iframe to load\n await new Promise((resolve) => setTimeout(resolve, 100));\n\n // Test that nth() works correctly with buttons in the main frame\n const mainLocator0 = page.mainFrame().locator(\"button\").nth(0);\n const mainText0 = await mainLocator0.textContent();\n expect(mainText0).toBe(\"Main Button 1\");\n\n const mainLocator1 = page.mainFrame().locator(\"button\").nth(1);\n const mainText1 = await mainLocator1.textContent();\n expect(mainText1).toBe(\"Main Button 2\");\n });\n});\n"]}
@@ -1,216 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const test_1 = require("@playwright/test");
4
- const v3_js_1 = require("../../lib/v3/v3.js");
5
- const v3_config_js_1 = require("./v3.config.js");
6
- test_1.test.describe("Locator.selectOption() method", () => {
7
- let v3;
8
- test_1.test.beforeEach(async () => {
9
- v3 = new v3_js_1.V3(v3_config_js_1.v3TestConfig);
10
- await v3.init();
11
- });
12
- test_1.test.afterEach(async () => {
13
- await v3?.close?.().catch((e) => {
14
- void e; // ignore cleanup errors
15
- });
16
- });
17
- (0, test_1.test)("selectOption() selects single option by value", async () => {
18
- const page = v3.context.pages()[0];
19
- await page.goto("data:text/html," +
20
- encodeURIComponent(`<!doctype html><html><body>
21
- <select id="fruit">
22
- <option value="">-- Choose --</option>
23
- <option value="apple">Apple</option>
24
- <option value="banana">Banana</option>
25
- <option value="cherry">Cherry</option>
26
- </select>
27
- </body></html>`));
28
- const select = page.mainFrame().locator("#fruit");
29
- const selected = await select.selectOption("banana");
30
- (0, test_1.expect)(selected).toEqual(["banana"]);
31
- const value = await page.mainFrame().evaluate(() => {
32
- const s = document.getElementById("fruit");
33
- return s?.value;
34
- });
35
- (0, test_1.expect)(value).toBe("banana");
36
- });
37
- (0, test_1.test)("selectOption() selects option by label/text", async () => {
38
- const page = v3.context.pages()[0];
39
- await page.goto("data:text/html," +
40
- encodeURIComponent(`<!doctype html><html><body>
41
- <select id="country">
42
- <option value="us">United States</option>
43
- <option value="uk">United Kingdom</option>
44
- <option value="ca">Canada</option>
45
- </select>
46
- </body></html>`));
47
- const select = page.mainFrame().locator("#country");
48
- const selected = await select.selectOption("United Kingdom");
49
- (0, test_1.expect)(selected).toEqual(["uk"]);
50
- });
51
- (0, test_1.test)("selectOption() selects multiple options in multiple select", async () => {
52
- const page = v3.context.pages()[0];
53
- await page.goto("data:text/html," +
54
- encodeURIComponent(`<!doctype html><html><body>
55
- <select id="colors" multiple>
56
- <option value="red">Red</option>
57
- <option value="green">Green</option>
58
- <option value="blue">Blue</option>
59
- <option value="yellow">Yellow</option>
60
- </select>
61
- </body></html>`));
62
- const select = page.mainFrame().locator("#colors");
63
- const selected = await select.selectOption(["red", "blue"]);
64
- (0, test_1.expect)(selected.sort()).toEqual(["blue", "red"]);
65
- const values = await page.mainFrame().evaluate(() => {
66
- const s = document.getElementById("colors");
67
- return Array.from(s?.selectedOptions ?? []).map((o) => o.value);
68
- });
69
- (0, test_1.expect)(values.sort()).toEqual(["blue", "red"]);
70
- });
71
- (0, test_1.test)("selectOption() deselects previous option on single select", async () => {
72
- const page = v3.context.pages()[0];
73
- await page.goto("data:text/html," +
74
- encodeURIComponent(`<!doctype html><html><body>
75
- <select id="size">
76
- <option value="s">Small</option>
77
- <option value="m" selected>Medium</option>
78
- <option value="l">Large</option>
79
- </select>
80
- </body></html>`));
81
- const select = page.mainFrame().locator("#size");
82
- let value = await page.mainFrame().evaluate(() => {
83
- const s = document.getElementById("size");
84
- return s?.value;
85
- });
86
- (0, test_1.expect)(value).toBe("m");
87
- await select.selectOption("l");
88
- value = await page.mainFrame().evaluate(() => {
89
- const s = document.getElementById("size");
90
- return s?.value;
91
- });
92
- (0, test_1.expect)(value).toBe("l");
93
- });
94
- (0, test_1.test)("selectOption() triggers change event", async () => {
95
- const page = v3.context.pages()[0];
96
- await page.goto("data:text/html," +
97
- encodeURIComponent(`<!doctype html><html><body>
98
- <select id="opt">
99
- <option value="a">Option A</option>
100
- <option value="b">Option B</option>
101
- </select>
102
- <div id="out"></div>
103
- <script>
104
- const select = document.getElementById('opt');
105
- const out = document.getElementById('out');
106
- select.addEventListener('change', () => {
107
- out.textContent = 'changed-' + select.value;
108
- });
109
- </script>
110
- </body></html>`));
111
- const select = page.mainFrame().locator("#opt");
112
- await select.selectOption("b");
113
- const output = await page.mainFrame().evaluate(() => {
114
- const out = document.getElementById("out");
115
- return out?.textContent;
116
- });
117
- (0, test_1.expect)(output).toBe("changed-b");
118
- });
119
- (0, test_1.test)("selectOption() with optgroup structure", async () => {
120
- const page = v3.context.pages()[0];
121
- await page.goto("data:text/html," +
122
- encodeURIComponent(`<!doctype html><html><body>
123
- <select id="grouped">
124
- <optgroup label="Fruits">
125
- <option value="apple">Apple</option>
126
- <option value="orange">Orange</option>
127
- </optgroup>
128
- <optgroup label="Vegetables">
129
- <option value="carrot">Carrot</option>
130
- <option value="celery">Celery</option>
131
- </optgroup>
132
- </select>
133
- </body></html>`));
134
- const select = page.mainFrame().locator("#grouped");
135
- await select.selectOption("celery");
136
- const value = await page.mainFrame().evaluate(() => {
137
- const s = document.getElementById("grouped");
138
- return s?.value;
139
- });
140
- (0, test_1.expect)(value).toBe("celery");
141
- });
142
- (0, test_1.test)("selectOption() returns array of selected values", async () => {
143
- const page = v3.context.pages()[0];
144
- await page.goto("data:text/html," +
145
- encodeURIComponent(`<!doctype html><html><body>
146
- <select id="multi" multiple>
147
- <option value="1">One</option>
148
- <option value="2">Two</option>
149
- <option value="3">Three</option>
150
- </select>
151
- </body></html>`));
152
- const select = page.mainFrame().locator("#multi");
153
- const selected = await select.selectOption(["1", "3"]);
154
- (0, test_1.expect)(selected).toContain("1");
155
- (0, test_1.expect)(selected).toContain("3");
156
- (0, test_1.expect)(selected.length).toBe(2);
157
- });
158
- (0, test_1.test)("selectOption() with empty string value", async () => {
159
- const page = v3.context.pages()[0];
160
- await page.goto("data:text/html," +
161
- encodeURIComponent(`<!doctype html><html><body>
162
- <select id="opt">
163
- <option value="">None</option>
164
- <option value="yes">Yes</option>
165
- <option value="no">No</option>
166
- </select>
167
- </body></html>`));
168
- const select = page.mainFrame().locator("#opt");
169
- const selected = await select.selectOption("");
170
- (0, test_1.expect)(selected).toEqual([""]);
171
- const value = await page.mainFrame().evaluate(() => {
172
- const s = document.getElementById("opt");
173
- return s?.value;
174
- });
175
- (0, test_1.expect)(value).toBe("");
176
- });
177
- (0, test_1.test)("selectOption() with numeric values", async () => {
178
- const page = v3.context.pages()[0];
179
- await page.goto("data:text/html," +
180
- encodeURIComponent(`<!doctype html><html><body>
181
- <select id="nums">
182
- <option value="1">One</option>
183
- <option value="2">Two</option>
184
- <option value="10">Ten</option>
185
- <option value="100">Hundred</option>
186
- </select>
187
- </body></html>`));
188
- const select = page.mainFrame().locator("#nums");
189
- await select.selectOption("10");
190
- const value = await page.mainFrame().evaluate(() => {
191
- const s = document.getElementById("nums");
192
- return s?.value;
193
- });
194
- (0, test_1.expect)(value).toBe("10");
195
- });
196
- (0, test_1.test)("selectOption() with disabled option", async () => {
197
- const page = v3.context.pages()[0];
198
- await page.goto("data:text/html," +
199
- encodeURIComponent(`<!doctype html><html><body>
200
- <select id="mixed">
201
- <option value="a">Available</option>
202
- <option value="b" disabled>Unavailable</option>
203
- <option value="c">Available</option>
204
- </select>
205
- </body></html>`));
206
- const select = page.mainFrame().locator("#mixed");
207
- // Should still select disabled option if explicitly requested
208
- await select.selectOption("b");
209
- const value = await page.mainFrame().evaluate(() => {
210
- const s = document.getElementById("mixed");
211
- return s?.value;
212
- });
213
- (0, test_1.expect)(value).toBe("b");
214
- });
215
- });
216
- //# sourceMappingURL=locator-select-option.spec.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"locator-select-option.spec.js","sourceRoot":"","sources":["../../../../tests/integration/locator-select-option.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, test } from \"@playwright/test\";\nimport { V3 } from \"../../lib/v3/v3.js\";\nimport { v3TestConfig } from \"./v3.config.js\";\n\ntest.describe(\"Locator.selectOption() method\", () => {\n let v3: V3;\n\n test.beforeEach(async () => {\n v3 = new V3(v3TestConfig);\n await v3.init();\n });\n\n test.afterEach(async () => {\n await v3?.close?.().catch((e) => {\n void e; // ignore cleanup errors\n });\n });\n\n test(\"selectOption() selects single option by value\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"fruit\">\n <option value=\"\">-- Choose --</option>\n <option value=\"apple\">Apple</option>\n <option value=\"banana\">Banana</option>\n <option value=\"cherry\">Cherry</option>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#fruit\");\n const selected = await select.selectOption(\"banana\");\n\n expect(selected).toEqual([\"banana\"]);\n\n const value = await page.mainFrame().evaluate(() => {\n const s = document.getElementById(\"fruit\") as HTMLSelectElement | null;\n return s?.value;\n });\n expect(value).toBe(\"banana\");\n });\n\n test(\"selectOption() selects option by label/text\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"country\">\n <option value=\"us\">United States</option>\n <option value=\"uk\">United Kingdom</option>\n <option value=\"ca\">Canada</option>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#country\");\n const selected = await select.selectOption(\"United Kingdom\");\n\n expect(selected).toEqual([\"uk\"]);\n });\n\n test(\"selectOption() selects multiple options in multiple select\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"colors\" multiple>\n <option value=\"red\">Red</option>\n <option value=\"green\">Green</option>\n <option value=\"blue\">Blue</option>\n <option value=\"yellow\">Yellow</option>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#colors\");\n const selected = await select.selectOption([\"red\", \"blue\"]);\n\n expect(selected.sort()).toEqual([\"blue\", \"red\"]);\n\n const values = await page.mainFrame().evaluate(() => {\n const s = document.getElementById(\"colors\") as HTMLSelectElement | null;\n return Array.from(s?.selectedOptions ?? []).map((o) => o.value);\n });\n expect(values.sort()).toEqual([\"blue\", \"red\"]);\n });\n\n test(\"selectOption() deselects previous option on single select\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"size\">\n <option value=\"s\">Small</option>\n <option value=\"m\" selected>Medium</option>\n <option value=\"l\">Large</option>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#size\");\n\n let value = await page.mainFrame().evaluate(() => {\n const s = document.getElementById(\"size\") as HTMLSelectElement | null;\n return s?.value;\n });\n expect(value).toBe(\"m\");\n\n await select.selectOption(\"l\");\n\n value = await page.mainFrame().evaluate(() => {\n const s = document.getElementById(\"size\") as HTMLSelectElement | null;\n return s?.value;\n });\n expect(value).toBe(\"l\");\n });\n\n test(\"selectOption() triggers change event\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"opt\">\n <option value=\"a\">Option A</option>\n <option value=\"b\">Option B</option>\n </select>\n <div id=\"out\"></div>\n <script>\n const select = document.getElementById('opt');\n const out = document.getElementById('out');\n select.addEventListener('change', () => {\n out.textContent = 'changed-' + select.value;\n });\n </script>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#opt\");\n await select.selectOption(\"b\");\n\n const output = await page.mainFrame().evaluate(() => {\n const out = document.getElementById(\"out\");\n return out?.textContent;\n });\n expect(output).toBe(\"changed-b\");\n });\n\n test(\"selectOption() with optgroup structure\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"grouped\">\n <optgroup label=\"Fruits\">\n <option value=\"apple\">Apple</option>\n <option value=\"orange\">Orange</option>\n </optgroup>\n <optgroup label=\"Vegetables\">\n <option value=\"carrot\">Carrot</option>\n <option value=\"celery\">Celery</option>\n </optgroup>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#grouped\");\n await select.selectOption(\"celery\");\n\n const value = await page.mainFrame().evaluate(() => {\n const s = document.getElementById(\"grouped\") as HTMLSelectElement | null;\n return s?.value;\n });\n expect(value).toBe(\"celery\");\n });\n\n test(\"selectOption() returns array of selected values\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"multi\" multiple>\n <option value=\"1\">One</option>\n <option value=\"2\">Two</option>\n <option value=\"3\">Three</option>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#multi\");\n const selected = await select.selectOption([\"1\", \"3\"]);\n\n expect(selected).toContain(\"1\");\n expect(selected).toContain(\"3\");\n expect(selected.length).toBe(2);\n });\n\n test(\"selectOption() with empty string value\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"opt\">\n <option value=\"\">None</option>\n <option value=\"yes\">Yes</option>\n <option value=\"no\">No</option>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#opt\");\n const selected = await select.selectOption(\"\");\n\n expect(selected).toEqual([\"\"]);\n\n const value = await page.mainFrame().evaluate(() => {\n const s = document.getElementById(\"opt\") as HTMLSelectElement | null;\n return s?.value;\n });\n expect(value).toBe(\"\");\n });\n\n test(\"selectOption() with numeric values\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"nums\">\n <option value=\"1\">One</option>\n <option value=\"2\">Two</option>\n <option value=\"10\">Ten</option>\n <option value=\"100\">Hundred</option>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#nums\");\n await select.selectOption(\"10\");\n\n const value = await page.mainFrame().evaluate(() => {\n const s = document.getElementById(\"nums\") as HTMLSelectElement | null;\n return s?.value;\n });\n expect(value).toBe(\"10\");\n });\n\n test(\"selectOption() with disabled option\", async () => {\n const page = v3.context.pages()[0];\n\n await page.goto(\n \"data:text/html,\" +\n encodeURIComponent(\n `<!doctype html><html><body>\n <select id=\"mixed\">\n <option value=\"a\">Available</option>\n <option value=\"b\" disabled>Unavailable</option>\n <option value=\"c\">Available</option>\n </select>\n </body></html>`,\n ),\n );\n\n const select = page.mainFrame().locator(\"#mixed\");\n // Should still select disabled option if explicitly requested\n await select.selectOption(\"b\");\n\n const value = await page.mainFrame().evaluate(() => {\n const s = document.getElementById(\"mixed\") as HTMLSelectElement | null;\n return s?.value;\n });\n expect(value).toBe(\"b\");\n });\n});\n"]}