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 是跨瀏覽器自動化的未來。 閱讀所有相關資訊!文件WebDriver雙向WebDriver-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 專案嗎?深入了解或檢視完整的贊助商清單。