前言

page.evaluate() 是直接在页面对象上执行JavaScript脚本
locator.evaluate() 是对定位的元素执行JavaScript
locator.evaluate_all() 对定位到的所有元素执行JavaScript

locator.evaluate() 对元素执行JavaScript

先用locator 方法定位到元素, 再对元素执行JavaScript



    page = browser.new_page()
    page.goto("http://127.0.0.1/login.html")

    username = page.locator('#username')
    # 输入框输入内容
    username.evaluate('node => node.value="yoyo"')
    # 获取输入框内容
    input_value = username.evaluate('node => node.value')
    print(input_value)  # yoyo

locator.evaluate_all() 执行全部元素

在页面中执行 JavaScript 代码,将所有匹配的元素作为参数。



from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(
        headless=False
    )
    page = browser.new_page()
    page.goto("https://www.baidu.com/")

    links = page.locator('#s-top-left>a')
    # 定位全部元素
    res = links.evaluate_all('nodes => nodes.length')
    print(res)  # 7

定位百度页面上的链接, 执行nodes.length 获取元素个数

python+playwright 学习-41.locator.evaluate()对定位的元素执行JavaScript脚本_lua