arguments = new ArrayList<>(); arguments.add(PrimitiveProtocolValue.numberValue(22)); Map 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.">arguments = new ArrayList<>(); arguments.add(PrimitiveProtocolValue.numberValue(22)); Map 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."> Selenium logo green 浏览器自动化工具 关于关于 Selenium 结构和治理 活动 生态系统 历史 参与 赞助商 赞助我们下载文档项目支持博客英语葡萄牙语(巴西)中文简体日本語WebDriver BiDi 是跨浏览器自动化的未来。 了解所有信息!文档WebDriverBiDirectionalWebDriver-BiDi脚本v4.0脚本本部分包含与脚本命令相关的 API。在浏览上下文中调用函数 Java Ruby JavaScript KotlinSelenium 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)); 在 GitHub 上查看完整示例添加示例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) 在 GitHub 上查看完整示例添加示例在沙盒中调用函数 Java Ruby JavaScript KotlinSelenium v4.15 try (Script script = new Script(id, driver)) { EvaluateResult result = script.callFunctionInBrowsingContext( id, "sandbox", "() => window.foo", true, Optional.empty(), Optional.empty(), Optional.empty()); 在 GitHub 上查看完整示例添加示例Selenium v4.9 const manager = await ScriptManager(id, driver) await manager.callFunctionInBrowsingContext(id, '() => { window.foo = 2; }', true, null, null, null, 'sandbox') 在 GitHub 上查看完整示例添加示例在领域中调用函数 Java Ruby JavaScript KotlinSelenium v4.15 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()); 在 GitHub 上查看完整示例添加示例Selenium v4.9 const manager = await ScriptManager(firstTab, driver) const realms = await manager.getAllRealms() const realmId = realms[0].realmId await manager.callFunctionInRealm(realmId, '() => { window.foo = 3; }', true) 在 GitHub 上查看完整示例添加示例在浏览上下文中评估脚本 Java Ruby JavaScript KotlinSelenium v4.15 try (Script script = new Script(id, driver)) { EvaluateResult result = script.evaluateFunctionInBrowsingContext(id, "1 + 2", true, Optional.empty()); 在 GitHub 上查看完整示例添加示例Selenium v4.9 const manager = await ScriptManager(id, driver) const result = await manager.evaluateFunctionInBrowsingContext(id, '1 + 2', true) 在 GitHub 上查看完整示例添加示例在沙盒中评估脚本 Java Ruby JavaScript KotlinSelenium v4.15 try (Script script = new Script(id, driver)) { EvaluateResult result = script.evaluateFunctionInBrowsingContext( id, "sandbox", "window.foo", true, Optional.empty()); 在 GitHub 上查看完整示例添加示例Selenium v4.9 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') 在 GitHub 上查看完整示例添加示例在领域中评估脚本 Java Ruby JavaScript KotlinSelenium v4.15 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()); 在 GitHub 上查看完整示例添加示例Selenium v4.9 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) 在 GitHub 上查看完整示例添加示例在浏览上下文中放弃句柄 Java Ruby JavaScript KotlinSelenium v4.15 script.disownBrowsingContextScript( 在 GitHub 上查看完整示例添加示例Selenium v4.9 await manager.disownBrowsingContextScript(id, boxId) 在 GitHub 上查看完整示例添加示例在领域中放弃句柄 Java Ruby JavaScript KotlinSelenium v4.15 script.disownRealmScript(realmId, List.of(boxId)); 在 GitHub 上查看完整示例添加示例Selenium v4.9 await manager.disownRealmScript(realmId, boxId) 在 GitHub 上查看完整示例添加示例获取所有领域 Java Ruby JavaScript KotlinSelenium v4.15 try (Script script = new Script(firstWindow, driver)) { List<RealmInfo> realms = script.getAllRealms(); 在 GitHub 上查看完整示例添加示例Selenium v4.9 const manager = await ScriptManager(firstWindow, driver) const realms = await manager.getAllRealms() 在 GitHub 上查看完整示例添加示例按类型获取领域 Java Ruby JavaScript KotlinSelenium v4.15 try (Script script = new Script(firstWindow, driver)) { List<RealmInfo> realms = script.getRealmsByType(RealmType.WINDOW); 在 GitHub 上查看完整示例添加示例Selenium v4.9 const manager = await ScriptManager(firstWindow, driver) const realms = await manager.getRealmsByType(RealmType.WINDOW) 在 GitHub 上查看完整示例添加示例获取浏览上下文领域 Java Ruby JavaScript KotlinSelenium v4.15 try (Script script = new Script(windowId, driver)) { List<RealmInfo> realms = script.getRealmsInBrowsingContext(tabId); 在 GitHub 上查看完整示例添加示例Selenium v4.9 const manager = await ScriptManager(windowId, driver) const realms = await manager.getRealmsInBrowsingContext(tabId) 在 GitHub 上查看完整示例添加示例按类型获取浏览上下文领域 Java Ruby JavaScript KotlinSelenium v4.15 List<RealmInfo> windowRealms = script.getRealmsInBrowsingContextByType(windowId, RealmType.WINDOW); 在 GitHub 上查看完整示例添加示例Selenium v4.9 const realms = await manager.getRealmsInBrowsingContextByType(windowId, RealmType.WINDOW) 在 GitHub 上查看完整示例添加示例预加载脚本 Java Ruby JavaScript KotlinSelenium v4.15 String id = script.addPreloadScript("() => { window.bar=2; }", "sandbox"); 在 GitHub 上查看完整示例添加示例Selenium v4.10 const manager = await ScriptManager(id, driver) const scriptId = await manager.addPreloadScript('() => {{ console.log(\'{preload_script_console_text}\') }}') 在 GitHub 上查看完整示例添加示例删除预加载脚本 Java Ruby JavaScript KotlinSelenium v4.15 script.removePreloadScript(id); 在 GitHub 上查看完整示例添加示例Selenium v4.10 await manager.removePreloadScript(scriptId) 在 GitHub 上查看完整示例添加示例上次修改时间为 2024 年 3 月 6 日:添加脚本模块文档 (a5b97403420)Selenium 级别赞助商支持 Selenium 项目想要支持 Selenium 项目?了解更多或查看全部赞助商。了解更多
本部分包含与脚本命令相关的 API。
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));
添加示例
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)
想要支持 Selenium 项目?了解更多或查看全部赞助商。