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

标签 javascript java selenium selenium-webdriver webdriver

arguments[0] 是什么意思和 arguments[1]使用 时的意思executeScript() JavascriptExecutor 接口(interface)通过 Selenium WebDriver 的方法以及 arguments[0] 的目的是什么?在下面的代码中。

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

最佳答案

executeScript()来自 JavascriptExecutor 的方法接口(interface)可以以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);
    
  • 类似地,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']被称为 论据[0]
  • “0”被称为论据[1]

  • You can find a relevant discussion in What is arguments[0] while invoking execute_script() method through WebDriver instance through Selenium and Python?

    关于javascript - 通过 Selenium WebDriver 从 JavascriptExecutor 接口(interface)使用 executeScript 方法时,arguments[0] 和 arguments[1] 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49871432/

    相关文章:

    javascript - 在无限循环中运行的jquery

    javascript - 在不通过 jQuery/JavaScript 实际悬停的情况下对 HTML 元素产生悬停效果?

    java - Spring 和 Web 服务

    java - 如何使用定时器而不产生延迟?

    javascript - 使用 selenium 从 window.location 获取 url

    javascript - ES6 箭头函数 this

    java - 如何使服务器端 Java 和客户端 JS DTO 属性保持一致

    java - 如何在Java中格式化和打印带有前导零的 float ?

    java - Selenium WebDriver 中使用 XPath 从子节点遍历到祖先节点

    selenium - xvfb 和 thucydides/Selenium 运行 Firefox 的默认路径