使用 Selenium 获取每个 img 元素的 css_selector 和 xpath,并存储这些信息以备将来在页面刷新后仍然能找到元素并点击它们。

imgs = driver.find_elements(By.TAG_NAME, 'img')
print('img数量:', len(imgs))

for element in imgs:
    if not element.is_displayed():
        continue

    # 获取 css_selector
    css_selector = element.get_attribute('css_selector')

    # 获取 xpath
    xpath = driver.execute_script('return getPathTo(element)', element)

    # 存储 css_selector 和 xpath,用于页面刷新后仍然能找到元素
    # 这里可以将 css_selector 和 xpath 存储到一个列表或字典中
    # 以便在需要时使用
    # 例如:
    # css_selectors.append(css_selector)
    # xpaths.append(xpath)

    # 点击元素
    element.click()

请注意,上述代码中的 getPathTo(element) 是一个自定义的 JavaScript 函数,它可以返回指定元素的 xpath。你需要将此函数添加到你的代码中。

以下是一个示例的 getPathTo 函数的实现:

function getPathTo(element) {
    if (element.id !== '')
        return 'id("' + element.id + '")';
    if (element === document.body)
        return element.tagName;

    var ix = 0;
    var siblings = element.parentNode.childNodes;
    for (var i = 0; i < siblings.length; i++) {
        var sibling = siblings[i];
        if (sibling === element)
            return getPathTo(element.parentNode) + '/' + element.tagName + '[' + (ix + 1) + ']';
        if (sibling.nodeType === 1 && sibling.tagName === element.tagName)
            ix++;
    }
}

这样,你就可以获取每个 img 元素的 css_selector 和 xpath,并且可以存储它们以便在页面刷新后仍然能找到元素并点击它们。

Selenium 获取 img 元素的 CSS Selector 和 XPath 并存储

原文地址: https://www.cveoy.top/t/topic/zun 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录