mirror of
https://github.com/Skyvern-AI/skyvern.git
synced 2025-09-02 10:41:04 +00:00
Remove default playwright automation controlled (#47)
This commit is contained in:
parent
1144ddd50f
commit
a0b3d0dcae
2 changed files with 22 additions and 4 deletions
|
@ -43,6 +43,10 @@ class Settings(BaseSettings):
|
||||||
SKYVERN_TELEMETRY: bool = True
|
SKYVERN_TELEMETRY: bool = True
|
||||||
ANALYTICS_ID: str = "anonymous"
|
ANALYTICS_ID: str = "anonymous"
|
||||||
|
|
||||||
|
# browser settings
|
||||||
|
BROWSER_LOCALE: str = "en-US"
|
||||||
|
BROWSER_TIMEZONE: str = "America/New_York"
|
||||||
|
|
||||||
def is_cloud_environment(self) -> bool:
|
def is_cloud_environment(self) -> bool:
|
||||||
"""
|
"""
|
||||||
:return: True if env is not local, else False
|
:return: True if env is not local, else False
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import tempfile
|
||||||
import uuid
|
import uuid
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, Awaitable, Protocol
|
from typing import Any, Awaitable, Protocol
|
||||||
|
@ -39,6 +40,16 @@ class BrowserContextFactory:
|
||||||
video_dir = f"{SettingsManager.get_settings().VIDEO_PATH}/{datetime.utcnow().strftime('%Y-%m-%d')}"
|
video_dir = f"{SettingsManager.get_settings().VIDEO_PATH}/{datetime.utcnow().strftime('%Y-%m-%d')}"
|
||||||
har_dir = f"{SettingsManager.get_settings().HAR_PATH}/{datetime.utcnow().strftime('%Y-%m-%d')}/{BrowserContextFactory.get_subdir()}.har"
|
har_dir = f"{SettingsManager.get_settings().HAR_PATH}/{datetime.utcnow().strftime('%Y-%m-%d')}/{BrowserContextFactory.get_subdir()}.har"
|
||||||
return {
|
return {
|
||||||
|
"user_data_dir": tempfile.mkdtemp(prefix="skyvern_browser_"),
|
||||||
|
"locale": SettingsManager.get_settings().BROWSER_LOCALE,
|
||||||
|
"timezone_id": SettingsManager.get_settings().BROWSER_TIMEZONE,
|
||||||
|
"args": [
|
||||||
|
"--disable-blink-features=AutomationControlled",
|
||||||
|
"--disk-cache-size=1",
|
||||||
|
],
|
||||||
|
"ignore_default_args": [
|
||||||
|
"--enable-automation",
|
||||||
|
],
|
||||||
"record_har_path": har_dir,
|
"record_har_path": har_dir,
|
||||||
"record_video_dir": video_dir,
|
"record_video_dir": video_dir,
|
||||||
"viewport": {"width": 1920, "height": 1080},
|
"viewport": {"width": 1920, "height": 1080},
|
||||||
|
@ -77,18 +88,21 @@ class BrowserArtifacts(BaseModel):
|
||||||
|
|
||||||
|
|
||||||
async def _create_headless_chromium(playwright: Playwright, **kwargs: dict) -> tuple[BrowserContext, BrowserArtifacts]:
|
async def _create_headless_chromium(playwright: Playwright, **kwargs: dict) -> tuple[BrowserContext, BrowserArtifacts]:
|
||||||
browser = await playwright.chromium.launch(headless=True)
|
|
||||||
browser_args = BrowserContextFactory.build_browser_args()
|
browser_args = BrowserContextFactory.build_browser_args()
|
||||||
browser_artifacts = BrowserContextFactory.build_browser_artifacts(har_path=browser_args["record_har_path"])
|
browser_artifacts = BrowserContextFactory.build_browser_artifacts(har_path=browser_args["record_har_path"])
|
||||||
browser_context = await browser.new_context(**browser_args)
|
browser_context = await playwright.chromium.launch_persistent_context(**browser_args)
|
||||||
return browser_context, browser_artifacts
|
return browser_context, browser_artifacts
|
||||||
|
|
||||||
|
|
||||||
async def _create_headful_chromium(playwright: Playwright, **kwargs: dict) -> tuple[BrowserContext, BrowserArtifacts]:
|
async def _create_headful_chromium(playwright: Playwright, **kwargs: dict) -> tuple[BrowserContext, BrowserArtifacts]:
|
||||||
browser = await playwright.chromium.launch(headless=False)
|
|
||||||
browser_args = BrowserContextFactory.build_browser_args()
|
browser_args = BrowserContextFactory.build_browser_args()
|
||||||
|
browser_args.update(
|
||||||
|
{
|
||||||
|
"headless": False,
|
||||||
|
}
|
||||||
|
)
|
||||||
browser_artifacts = BrowserContextFactory.build_browser_artifacts(har_path=browser_args["record_har_path"])
|
browser_artifacts = BrowserContextFactory.build_browser_artifacts(har_path=browser_args["record_har_path"])
|
||||||
browser_context = await browser.new_context(**browser_args)
|
browser_context = await playwright.chromium.launch_persistent_context(**browser_args)
|
||||||
return browser_context, browser_artifacts
|
return browser_context, browser_artifacts
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue