通过 Selenium WebDriver 从 JavascriptExecutor 接口使用 executeScript 方法时,arguments[0] 和 arguments[1] 是什么意思?

使用 executeScript() 方法时,arguments[0]arguments[1] 是什么意思JavascriptExecutor 接口通过 Selenium WebDriver 以及下面代码中 arguments[0] 的用途.

What does arguments[0] and arguments[1] mean when using executeScript() method from JavascriptExecutor interface through Selenium WebDriver and what is the purpose of the arguments[0] in the below code.

javaScriptExecutor.executeScript("arguments[0].click()", webElement);

推荐答案

executeScript() 方法来自 JavascriptExecutor 接口可以调用多个参数arguments[0]、arguments[1]等形式

  • 根据您的示例,javaScriptExecutor.executeScript("arguments[0].click()", webElement); 需要 webElementem> 定义.executeScript() 方法将元素的引用作为 arguments[0] 以及 method 被执行 [在这种情况下 click()] 并且应该在之后提供参考.

  • As per your example, to javaScriptExecutor.executeScript("arguments[0].click()", webElement); to work you need to have the webElement defined. executeScript() method will take the reference of the element as arguments[0] along with the method to be performed [in this case click()] and the reference should be provided thereafter.

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]
    • 0"被称为arguments[1]

    您可以在 通过 Selenium 和 Python 通过 WebDriver 实例调用 execute_script() 方法时的 arguments[0] 是什么?

  • 相关文章