Skip to content

Commit de9735a

Browse files
committed
Update CDP Mode
1 parent 4ba4d68 commit de9735a

File tree

3 files changed

+23
-3
lines changed

3 files changed

+23
-3
lines changed

seleniumbase/core/sb_cdp.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -877,8 +877,13 @@ def set_value(self, selector, text, timeout=None):
877877

878878
def evaluate(self, expression):
879879
"""Run a JavaScript expression and return the result."""
880-
if expression.startswith("return "):
881-
expression = expression[len("return "):]
880+
expression = expression.strip()
881+
exp_list = expression.split("\n")
882+
if exp_list and exp_list[-1].strip().startswith("return "):
883+
expression = (
884+
"\n".join(exp_list[0:-1]) + "\n"
885+
+ exp_list[-1].strip()[len("return "):]
886+
).strip()
882887
return self.loop.run_until_complete(
883888
self.page.evaluate(expression)
884889
)

seleniumbase/undetected/cdp_driver/cdp_util.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,18 @@ async def start_async(*args, **kwargs) -> Browser:
241241

242242

243243
def start_sync(*args, **kwargs) -> Browser:
244-
loop = asyncio.get_event_loop()
244+
loop = None
245+
if (
246+
"loop" in kwargs
247+
and kwargs["loop"]
248+
and hasattr(kwargs["loop"], "create_task")
249+
):
250+
loop = kwargs["loop"]
251+
else:
252+
try:
253+
loop = asyncio.get_event_loop()
254+
except RuntimeError:
255+
loop = asyncio.new_event_loop()
245256
headless = False
246257
binary_location = None
247258
if "browser_executable_path" in kwargs:

seleniumbase/undetected/cdp_driver/tab.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -896,6 +896,10 @@ async def set_window_size(self, left=0, top=0, width=1280, height=1024):
896896
"""
897897
return await self.set_window_state(left, top, width, height)
898898

899+
async def set_window_rect(self, left=0, top=0, width=1280, height=1024):
900+
"""Same as set_window_size(). Uses a different naming convention."""
901+
return await self.set_window_state(left, top, width, height)
902+
899903
async def activate(self):
900904
"""Active this target (Eg: tab, window, page)"""
901905
await self.send(cdp.target.activate_target(self.target.target_id))

0 commit comments

Comments
 (0)