MCPcopy Create free account
hub / github.com/Vinyzu/Botright / Utils

Class Utils

tests/utils.py:9–49  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7
8
9class Utils:
10 async def attach_frame(self, page: Page, frame_id: str, url: str):
11 handle = await page.evaluate_handle(
12 """async ({ frame_id, url }) => {
13 const frame = document.createElement('iframe');
14 frame.src = url;
15 frame.id = frame_id;
16 document.body.appendChild(frame);
17 await new Promise(x => frame.onload = x);
18 return frame;
19 }""",
20 {"frame_id": frame_id, "url": url},
21 )
22 return await cast(ElementHandle, handle.as_element()).content_frame()
23
24 async def detach_frame(self, page: Page, frame_id: str):
25 await page.evaluate("frame_id => document.getElementById(frame_id).remove()", frame_id)
26
27 def dump_frames(self, frame: Frame, indentation: str = "") -> List[str]:
28 indentation = indentation or ""
29 description = re.sub(r":\d+/", ":<PORT>/", frame.url)
30 if frame.name:
31 description += " (" + frame.name + ")"
32 result = [indentation + description]
33 sorted_frames = sorted(frame.child_frames, key=lambda frame: frame.url + frame.name)
34 for child in sorted_frames:
35 result = result + utils.dump_frames(child, " " + indentation)
36 return result
37
38 async def verify_viewport(self, page: Page, width: int, height: int):
39 assert cast(ViewportSize, page.viewport_size)["width"] == width
40 assert cast(ViewportSize, page.viewport_size)["height"] == height
41 assert await page.evaluate("window.innerWidth") == width
42 assert await page.evaluate("window.innerHeight") == height
43
44 async def register_selector_engine(self, selectors: Selectors, *args, **kwargs) -> None:
45 try:
46 await selectors.register(*args, **kwargs)
47 except Error as exc:
48 if "has been already registered" not in exc.message:
49 raise exc
50
51
52utils = Utils()

Callers 1

utils.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected