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

新手上路,请多包涵

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下面的代码。

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

原文由 Vel Guru 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 747
2 个回答

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

  • 根据您的示例,为了 javaScriptExecutor.executeScript("arguments[0].click()", webElement); 工作,您需要定义 webElementexecuteScript() 方法将元素的引用作为 参数 [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]

您可以在 What is arguments[0] while invoking execute_script() method through WebDriver instance through Selenium and Python? 中找到相关讨论?

原文由 undetected Selenium 发布,翻译遵循 CC BY-SA 4.0 许可协议

它似乎在匿名函数的上下文中运行,该匿名函数正在传递 driver.findElement(locator) 产生的任何内容。

所以, arguments[0] 是你访问匿名函数的第一个参数的方式,同样适用于 arguments[1]

原文由 iamsankalp89 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题