[英]What is the use of “arguments[0]” when implementing javascriptexecutor?
[英]What does arguments[0] and arguments[1] mean when using executeScript method from JavascriptExecutor interface through Selenium WebDriver?
當通過 Selenium WebDriver 使用來自JavascriptExecutor接口的executeScript()
方法時, arguments[0]
和arguments[1]
是什么意思,以及下面代碼中arguments[0]
的目的是什么。
javaScriptExecutor.executeScript("arguments[0].click()", webElement);
JavascriptExecutor接口中的executeScript()方法可以調用arguments [0] , arguments [1]等形式的多個參數
按照您的示例,使用javaScriptExecutor.executeScript("arguments[0].click()", webElement);
要工作,您需要定義webElement 。 executeScript()
方法將把元素的引用與要執行的方法一起作為參數[0]使用[在這種情況下, click()
],此后應提供引用。
WebElement webElement = driver.findElement(By.xpath("xpath_element")); JavascriptExecutor javaScriptExecutor = (JavascriptExecutor)driver; javaScriptExecutor.executeScript("arguments[0].click()", webElement);
同樣,具有多個arguments []的executeScript()
的示例如下:
JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].setAttribute('style', arguments[1])", driver.findElement(By.xpath("//input[@type='file']")), "0");
在此示例中:
driver.findElement(By.xpath("//input[@type='file']
被稱為arguments [0] 在通過Selenium和Python通過WebDriver實例調用execute_script()方法的同時,您可以在“ 什么是參數[0]”中找到相關的討論?
對於executeScript API: executeScript(script/function, arg1, arg2, arg3, ...)
第一個參數是javascript代碼段或javascript函數,如果是javascript代碼段,則將其包裝到executeScript
內部的javascript函數中。
下一個參數是javascript函數的參數,表示第一個參數。
arguments
是javascript函數的內置功能。 您可以在調用函數時使用它獲取真實的傳入參數。 請參見以下示例:
test('tom', 12, 'male', '175cm') // call function: test
function test(name, age) {
console.log(name); // tom
console.log(age); // 12
console.log(arguments); // ['tom', 12, 'male', '175cm']
console.log(arguments[0]); // equal to argument: name, so print tom
console.log(arguments[1]); // equal to argument: age, so print 12
console.log(arguments[2]); // male
console.log(arguments[3]); // 175cm
}
有關Javascript Function.arguments的更多詳細信息
它似乎在匿名函數的上下文中運行,該函數將通過driver.findElement(locator)
產生的任何driver.findElement(locator)
傳遞。
因此, arguments[0]
是您訪問匿名函數的第一個參數的方式,而對arguments[1]
的訪問方式相同
這是使用參數 [0] 和參數 [2] 的工作示例:
objIE.ExecuteScript "arguments[0].value = arguments[1]", Array(objIE.FindElementById("sqlvalue1"), Sheets("SheetName").Range("U2").Value)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.