使用 Python 在 Selenium 中运行 javascript。

seleniumautomation testingtesting toolsjavascriptpython

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

某些操作(例如在页面中向下滚动)无法通过 Selenium 方法直接执行。这是在 Javascript Executor 的帮助下实现的。window.scrollTo 方法用于执行滚动操作。沿 x 轴水平滚动的像素和沿 y 轴垂直滚动的像素作为参数传递给该方法。

语法

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

示例

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

from selenium import webdriver
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/tutor_connect/index.php")
# 滚动到页面底部
driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")

我们还可以使用 Selenium 中的 Javascript Executor 执行单击链接等 Web 操作。我们将使用 execute_script 方法并将 argument index.click()webelement 作为要单击的参数传递给该方法。

语法

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

示例

代码实现以执行单击等 Web 操作。

from selenium import webdriver
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/index.htm")
# 识别元素然后单击
s = driver.find_element_by_xpath("//*[text()='Library']")
# 使用 execute_script 方法执行单击
driver.execute_script("arguments[0].click();",s)
print("单击后的页面标题:" + driver.title)

输出


相关文章