pytest+python+playwright鼠标悬停并点击
时间: 2023-07-29 21:10:45 浏览: 243
在 Pytest 中使用 Playwright,您可以编写测试用例来测试鼠标悬停并单击元素的功能。以下是一个示例测试用例,可以悬停并单击一个具有 `id` 属性的元素:
```python
import pytest
from playwright.sync_api import Playwright, sync_playwright
def test_mouse_hover_and_click(playwright: Playwright):
with playwright.chromium.launch() as browser:
with browser.new_context() as context:
page = context.new_page()
page.goto('https://example.com')
element = page.query_selector('#element-id')
element.hover()
element.click()
```
在这个测试用例中,我们使用 `pytest.fixture` 装饰器来注入 Playwright 对象。然后,我们使用 `with` 语句创建一个 Playwright 浏览器实例和一个上下文实例,并在该上下文中创建一个新页面。接下来,我们获取要操作的元素,并使用 `hover()` 方法悬停在该元素上,然后使用 `click()` 方法单击该元素。
如果您想要在单击之前等待一段时间以确保页面上的一些内容已加载,可以使用 `time.sleep()` 方法。例如,以下代码会等待 2 秒钟,然后悬停并单击元素:
```python
import pytest
import time
from playwright.sync_api import Playwright, sync_playwright
def test_mouse_hover_and_click(playwright: Playwright):
with playwright.chromium.launch() as browser:
with browser.new_context() as context:
page = context.new_page()
page.goto('https://example.com')
element = page.query_selector('#element-id')
time.sleep(2) # 等待 2 秒钟
element.hover()
element.click()
```
请注意,这里使用了 Python 的 `time.sleep()` 方法而不是 Playwright 的 `page.wait_for_timeout()` 方法,因为在 Pytest 中不支持后者。
阅读全文