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

Vel*_*uru 2 javascript java selenium webdriver selenium-webdriver

是什么arguments[0]以及arguments[1]使用时的意思是executeScript()方法从JavascriptExecutor通过硒webdriver的接口,什么是的目的arguments[0]在下面的代码。

javaScriptExecutor.executeScript("arguments[0].click()", webElement);
Run Code Online (Sandbox Code Playgroud)

Deb*_*anB 6

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);
    
    Run Code Online (Sandbox Code Playgroud)
  • 类似地,executeScript()具有多个arguments []的示例如下:

    JavascriptExecutor js = (JavascriptExecutor) driver; 
    js.executeScript("arguments[0].setAttribute('style', arguments[1])", driver.findElement(By.xpath("//input[@type='file']")), "0");
    
    Run Code Online (Sandbox Code Playgroud)

    在此示例中:

    • driver.findElement(By.xpath("//input[@type='file']被称为arguments [0]
    • “ 0”称为自变量[1]

通过Selenium和Python通过WebDriver实例调用execute_script()方法时,您可以在“ 什么是参数[0]”中找到相关的讨论