Spaces:
Running
Running
import logging | |
import os | |
import random | |
import gymnasium as gym | |
import playwright.sync_api | |
import pytest | |
from tenacity import retry, retry_if_exception_type, stop_after_attempt, wait_fixed | |
# register gym environments | |
import browsergym.visualwebarena | |
__SLOW_MO = 1000 if "DISPLAY_BROWSER" in os.environ else None | |
__HEADLESS = False if "DISPLAY_BROWSER" in os.environ else True | |
from browsergym.visualwebarena import VISUALWEBARENA_TASK_IDS_WITHOUT_RESET | |
rng = random.Random(1) | |
task_ids = rng.sample(VISUALWEBARENA_TASK_IDS_WITHOUT_RESET, 25) | |
def test_env_generic(task_id): | |
env = gym.make( | |
f"browsergym/{task_id}", | |
headless=__HEADLESS, | |
slow_mo=__SLOW_MO, | |
) | |
obs, info = env.reset() | |
env.close() | |
def test_domain_safeguard(): | |
env = gym.make( | |
f"browsergym/visualwebarena.398", | |
headless=__HEADLESS, | |
slow_mo=__SLOW_MO, | |
) | |
obs, info = env.reset() | |
assert not obs["last_action_error"] | |
obs, reward, terminated, truncated, info = env.step("new_tab()") | |
assert not obs["last_action_error"] | |
assert not (terminated or truncated) | |
obs, reward, terminated, truncated, info = env.step("tab_close()") | |
assert not obs["last_action_error"] | |
assert not (terminated or truncated) | |
obs, reward, terminated, truncated, info = env.step("tab_focus(0)") | |
assert not obs["last_action_error"] | |
assert not (terminated or truncated) | |
obs, reward, terminated, truncated, info = env.step('goto("http://www.google.com")') | |
assert not obs["last_action_error"] | |
assert terminated | |
env.close() | |