剧作家尝试通过 get_by_text() 方法悬停多个项目

问题描述 投票:0回答:1

我试图找到网站中每条包含“您好,团队,这是一个新的报告任务:”文本的消息,并将它们逐一悬停以便能够单击另一个按钮。


        page.get_by_role("treeitem", name="reports-development").locator("div").first.click()


        #page.get_by_text(re.compile("Hello team , here is a new report task:")).hover()
        
        text_pattern = re.compile(r"Hello team , here is a new report task:")
        elements = page.locator(f'text="{text_pattern.pattern}"')
        print(elements.all_inner_texts())
        #count = elements.count()
        #for i in range(count):
        #    elements.nth(i).hover()
        #    page.get_by_label("Add reaction…").click()
        #    page.get_by_role("gridcell", name="+1 emoji").click()
        #    page.wait_for_timeout(5000)  # Wait for 5 seconds

我首先尝试将其作为定位器元素进行迭代,但它不起作用,然后尝试使用 nth() 方法,但它也不起作用。

如何迭代找到的消息?我的屏幕上会显示多条消息,因此我必须对找到的每条消息进行一条一条的操作。

playwright-python
1个回答
0
投票

希望这对您有帮助。

from playwright.sync_api import Page

# Assuming 'page' is your Playwright Page object

# Find all elements containing the specified text
text_pattern = re.compile(r"Hello team , here is a new report task:")
elements = page.locator(f'text="{text_pattern.pattern}"')

# Iterate over each element and hover over it
for element in elements:
    element.hover()
© www.soinside.com 2019 - 2024. All rights reserved.