代码之家  ›  专栏  ›  技术社区  ›  ShacoPoggers

如何在剧作家python中获取tagName

  •  0
  • ShacoPoggers  · 技术社区  · 2 年前

    我想获取元素选择器的标记名tagname,由 get_by_text() 方法 例如

    element = page.get_by_text("example", exact=True)
    
    1 回复  |  直到 2 年前
        1
  •  1
  •   ggorlen Hoàng Huy Khánh    2 年前

    这是一个 rather unusual request ,因此可能有更好的方法来解决您试图解决的任何基本问题,但您可以从元素中提取标记,如下所示:

    element = page.get_by_text("example", exact=True)
    tag_name = element.evaluate("el => el.tagName")
    

    完整、可运行的示例:

    from playwright.sync_api import sync_playwright,expect # 1.43.0
    
    
    html = '<span aria-hidden="true"><!---->Sr. Enterprise Cloud &amp; Snowflake Architect<!----></span>'
    
    
    with sync_playwright() as p:
        browser = p.chromium.launch()
        page = browser.new_page()
        page.set_content(html)
        element = page.get_by_text("Sr. Enterprise Cloud & Snowflake Architect", exact=True)
        tag_name = element.evaluate("el => el.tagName")
        print(tag_name) # => SPAN
        browser.close()
    

    如果您正在进行测试并预计会出现某个标签,请尝试:

    expect(page.locator("p").locator("text='example'")).to_be_visible()
    

    或者没有 expect :

    page.locator("p").locator("text='example'").wait_for()
    

    一般来说,在测试中,您不想太在意标记名,因为它们对用户不可见。