通过 Selenium 和 Python 通过 WebDriver 实例调用 execute_script() 方法时,参数 [0] 是什么?

我正在尝试抓取我感兴趣的页面.为此,我需要从 HTML 中删除元素的属性.'style' 是我想要删除的.所以我从 Stackoverflow 中找到了一些代码.(我正在使用 Chrome 作为驱动程序)

I'm trying to crawl the pages that I interested in. For this, I need to remove attribute of element from HTML. 'style' is what I want to remove. So I find some codes from Stackoverflow.(i'm using Chrome for driver)

element = driver.find_element_by_xpath("//select[@class='m-tcol-c' and @id='searchBy']")
driver.execute_script("arguments[0].removeAttribute('style')", element)

arguments[0] 在代码中做了什么?谁能具体解释arguments[0]的作用?

What does arguments[0] do in the code? Can anyone explain arguments[0]'s roles concretely?

推荐答案

arguments 是您将 从 Python 传递到 JavaScript 的内容你想执行.

arguments is what you're passing from Python to JavaScript that you want to execute.

driver.execute_script("arguments[0].removeAttribute('style')", element) 

表示您想用存储在 element 变量中的 WebElement 来替换"arguments[0].

means that you want to "replace" arguments[0] with WebElement stored in element variable.

这与您在 JavaScript 中定义该元素相同:

This is the same as if you defined that element in JavaScript:

driver.execute_script("document.querySelector('select.m-tcol-c#searchBy').removeAttribute('style')")

您还可以将更多参数传递为

You can also pass more arguments as

driver.execute_script("arguments[0].removeAttribute(arguments[1])", element, "style")

相关文章