如何在 Python 中使用 Selenium 执行 Javascript?


我们可以在 Python 的 Selenium webdriver 中运行 Javascript。文档对象模型 (DOM) 通过 Javascript 的帮助与页面上的元素进行通信。Selenium 通过使用 **execute_script** 方法来执行 Javascript 命令。要执行的命令作为参数传递给该方法。

一些操作,例如页面向下滚动,无法直接通过 Selenium 方法执行。这可以通过 **Javascript 执行器** 来实现。**window.scrollTo** 方法用于执行滚动操作。沿 x 轴水平滚动的像素和沿 y 轴垂直滚动的像素作为参数传递给该方法。

语法

driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")

示例

滚动到页面底部的代码实现。

driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://tutorialspoint.com/tutor_connect/index.php")
# to scroll till page bottom
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")

我们还可以使用 Selenium 中的 Javascript 执行器执行诸如点击链接之类的 Web 操作。我们将使用 execute_script 方法并将参数 index.click() 和要点击的 webelement 作为参数传递给该方法。

语法

s = driver.find_element_by_css_selector("#id")
driver.execute_script("arguments[0].click();",s)

示例

执行点击等 Web 操作的代码实现。

执行点击等 Web 操作的代码实现。

from selenium import webdriver
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://tutorialspoint.com/index.htm")
# to identify element and then click
s = driver.find_element_by_xpath("//*[text()='Library']")
# perform click with execute_script method
driver.execute_script("arguments[0].click();",s)
print("Page title after click: " + driver.title)

输出

更新于:2021年11月22日

23K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告