如何使用 Selenium 在 Python 中执行 JavaScript 函数?
seleniumautomation testingtesting tools
我们可以使用 Selenium webdriver 在 Python 中执行 JavaScript 函数。DOM 通过 JavaScript 与元素交互。Selenium 能够使用 execute_script 方法执行 JavaScript 命令。
Selenium 无法直接执行某些操作,例如网页滚动。为此,我们将使用 JavaScript 执行器。我们将借助 JavaScript 命令 window.scrollTo 并将其传递给 execute_script 方法。要滚动到页面底部,我们必须将 0 和 document.body.scrollHeight 作为参数传递给 window.scrollTo。
语法
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
示例
from selenium import webdriver
driver = webdriver.Firefox(executable_path="C:\geckodriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/index.htm")
#滚动到页面bottom
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);)
我们还可以使用 JavaScript 执行诸如点击链接之类的 Web 操作。这里,我们也将使用 execute_script 方法,并将 arguments with index 和 element 作为参数传递给该方法。
语法
e = driver.find_element_by_css_selector(".cls")
driver.execute_script("arguments[0].click();",e)
点击页面上的 Library 链接。

示例
来自 selenium 导入webdriver
driver = webdriver.Firefox(executable_path="C:\geckodriver.exe")
driver.implicitly_wait(0.8)
driver.get("https://www.tutorialspoint.com/index.htm")
# 识别元素
l = driver.find_element_by_xpath("//*[text()='Library']")
# 使用 execute_script 点击
driver.execute_script("arguments[0].click();",l)
print("Page title after click: " + driver.title)
输出


