You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nightwatch.js如何迭代多个同类网页元素并点击 类似Selenium findElements功能

多元素批量遍历点击实现方案

以下提供不同技术栈下对齐Selenium findElements能力的实现代码,可直接用于相同ID、XPath、CSS选择器的元素批量遍历点击操作:

Python Selenium 实现

核心调用Selenium原生find_elements方法匹配所有符合条件的元素,适配DOM变化场景的代码如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器
driver = webdriver.Chrome()
driver.get("替换为你的目标页面地址")
wait = WebDriverWait(driver, 10)

# 定位方式可替换为 By.XPATH / By.ID 等,示例使用CSS选择器
target_locator = (By.CSS_SELECTOR, "替换为你的目标元素选择器")
# 等待所有匹配元素加载完成
elements = wait.until(EC.presence_of_all_elements_located(target_locator))

# 遍历点击
for index in range(len(elements)):
    # 若点击不会触发DOM更新,可直接遍历elements列表无需重复获取
    current_element = wait.until(EC.presence_of_all_elements_located(target_locator))[index]
    current_element.click()
    # 可根据业务需要添加点击后的等待、数据提取等逻辑
    driver.implicitly_wait(1)

driver.quit()

Node.js Selenium 实现

const { Builder, By, until } = require('selenium-webdriver');

async function batchClick() {
    const driver = await new Builder().forBrowser('chrome').build();
    try {
        await driver.get('替换为你的目标页面地址');
        // 定位方式可替换为 By.css() / By.id() 等,示例使用XPath
        const targetLocator = By.xpath('替换为你的目标XPath');
        const elements = await driver.wait(until.elementsLocated(targetLocator), 10000);

        for (let i = 0; i < elements.length; i++) {
            const currentEle = await driver.wait(until.elementsLocated(targetLocator), 10000)[i];
            await currentEle.click();
            await driver.sleep(1000);
        }
    } finally {
        await driver.quit();
    }
}

batchClick();

通用注意事项

  • HTML规范中ID属性应为页面唯一值,若遇到多元素共用同一ID的非规范场景,使用find_elements(By.ID, "重复ID值")也可匹配到所有对应元素
  • 若点击操作会触发DOM刷新、页面跳转,必须每次循环重新拉取元素列表,否则会触发StaleElementReferenceException元素过期报错
  • 执行操作前先等待所有元素加载完成,避免匹配到空列表导致逻辑异常

内容的提问来源于stack exchange,提问作者karthik kallu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:36:03