使用 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)