|
import os |
|
import gymnasium as gym |
|
import re |
|
import pytest |
|
|
|
|
|
import browsergym.miniwob |
|
|
|
__SLOW_MO = 1000 if "DISPLAY_BROWSER" in os.environ else None |
|
__HEADLESS = False if "DISPLAY_BROWSER" in os.environ else True |
|
|
|
|
|
@pytest.mark.parametrize("seed", range(5)) |
|
def test_cheat(seed): |
|
env = gym.make( |
|
"browsergym/miniwob.click-scroll-list", |
|
headless=__HEADLESS, |
|
slow_mo=__SLOW_MO, |
|
action_mapping=None, |
|
) |
|
obs, info = env.reset(seed=seed) |
|
|
|
assert obs["last_action_error"] == "" |
|
|
|
match = re.match("Select (.+) from the scroll list and click Submit.", obs["goal"]) |
|
|
|
assert match |
|
|
|
options = match.groups()[0].split(", ") |
|
options = '", "'.join(options) |
|
action = f"""\ |
|
page.locator("#options").select_option(["{options}"]) |
|
page.get_by_role("button", name="Submit").click() |
|
""" |
|
|
|
obs, reward, term, trunc, info = env.step(action) |
|
|
|
assert obs["last_action_error"] == "" |
|
assert reward == 1 |
|
assert term == True |
|
|
|
env.close() |
|
|