This section contains the APIs related to script commands.
Selenium v4.15
try (Script script = new Script(id, driver)) { List<LocalValue> arguments = new ArrayList<>(); arguments.add(PrimitiveProtocolValue.numberValue(22)); Map<Object, LocalValue> value = new HashMap<>(); value.put("some_property", LocalValue.numberValue(42)); LocalValue thisParameter = LocalValue.objectValue(value); arguments.add(thisParameter); EvaluateResult result = script.callFunctionInBrowsingContext( id, "function processWithPromise(argument) {\n" + " return new Promise((resolve, reject) => {\n" + " setTimeout(() => {\n" + " resolve(argument + this.some_property);\n" + " }, 1000)\n" + " })\n" + "}", true, Optional.of(arguments), Optional.of(thisParameter), Optional.of(ResultOwnership.ROOT));
Add Example
Selenium v4.9
const manager = await ScriptManager(id, driver) let argumentValues = [] let value = new ArgumentValue(LocalValue.createNumberValue(22)) argumentValues.push(value) let mapValue = {some_property: LocalValue.createNumberValue(42)} let thisParameter = new ArgumentValue(LocalValue.createObjectValue(mapValue)).asMap() const result = await manager.callFunctionInBrowsingContext( id, 'function processWithPromise(argument) {' + 'return new Promise((resolve, reject) => {' + 'setTimeout(() => {' + 'resolve(argument + this.some_property);' + '}, 1000)' + '})' + '}', true, argumentValues, thisParameter, ResultOwnership.ROOT)
try (Script script = new Script(id, driver)) { EvaluateResult result = script.callFunctionInBrowsingContext( id, "sandbox", "() => window.foo", true, Optional.empty(), Optional.empty(), Optional.empty());
const manager = await ScriptManager(id, driver) await manager.callFunctionInBrowsingContext(id, '() => { window.foo = 2; }', true, null, null, null, 'sandbox')
try (Script script = new Script(tab, driver)) { List<RealmInfo> realms = script.getAllRealms(); String realmId = realms.get(0).getRealmId(); EvaluateResult result = script.callFunctionInRealm( realmId, "() => { window.foo = 3; }", true, Optional.empty(), Optional.empty(), Optional.empty());
const manager = await ScriptManager(firstTab, driver) const realms = await manager.getAllRealms() const realmId = realms[0].realmId await manager.callFunctionInRealm(realmId, '() => { window.foo = 3; }', true)
try (Script script = new Script(id, driver)) { EvaluateResult result = script.evaluateFunctionInBrowsingContext(id, "1 + 2", true, Optional.empty());
const manager = await ScriptManager(id, driver) const result = await manager.evaluateFunctionInBrowsingContext(id, '1 + 2', true)
try (Script script = new Script(id, driver)) { EvaluateResult result = script.evaluateFunctionInBrowsingContext( id, "sandbox", "window.foo", true, Optional.empty());
const manager = await ScriptManager(id, driver) await manager.evaluateFunctionInBrowsingContext(id, 'window.foo = 2', true, null, 'sandbox') const resultInSandbox = await manager.evaluateFunctionInBrowsingContext(id, 'window.foo', true, null, 'sandbox')
try (Script script = new Script(tab, driver)) { List<RealmInfo> realms = script.getAllRealms(); String realmId = realms.get(0).getRealmId(); EvaluateResult result = script.evaluateFunctionInRealm( realmId, "window.foo", true, Optional.empty());
const manager = await ScriptManager(firstTab, driver) const realms = await manager.getAllRealms() const realmId = realms[0].realmId await manager.evaluateFunctionInRealm(realmId, 'window.foo = 3', true) const result = await manager.evaluateFunctionInRealm(realmId, 'window.foo', true)
script.disownBrowsingContextScript(
await manager.disownBrowsingContextScript(id, boxId)
script.disownRealmScript(realmId, List.of(boxId));
await manager.disownRealmScript(realmId, boxId)
try (Script script = new Script(firstWindow, driver)) { List<RealmInfo> realms = script.getAllRealms();
const manager = await ScriptManager(firstWindow, driver) const realms = await manager.getAllRealms()
try (Script script = new Script(firstWindow, driver)) { List<RealmInfo> realms = script.getRealmsByType(RealmType.WINDOW);
const manager = await ScriptManager(firstWindow, driver) const realms = await manager.getRealmsByType(RealmType.WINDOW)
try (Script script = new Script(windowId, driver)) { List<RealmInfo> realms = script.getRealmsInBrowsingContext(tabId);
const manager = await ScriptManager(windowId, driver) const realms = await manager.getRealmsInBrowsingContext(tabId)
List<RealmInfo> windowRealms = script.getRealmsInBrowsingContextByType(windowId, RealmType.WINDOW);
const realms = await manager.getRealmsInBrowsingContextByType(windowId, RealmType.WINDOW)
String id = script.addPreloadScript("() => { window.bar=2; }", "sandbox");
Selenium v4.10
const manager = await ScriptManager(id, driver) const scriptId = await manager.addPreloadScript('() => {{ console.log(\'{preload_script_console_text}\') }}')
script.removePreloadScript(id);
await manager.removePreloadScript(scriptId)
Want to support the Selenium project? Learn more or view the full list of sponsors.