python+playwright鼠标悬停并点击
时间: 2023-08-02 09:32:29 浏览: 186
在 Python 中使用 Playwright,您可以使用类似于 JavaScript 的代码来鼠标悬停并单击元素,只需要使用 Python 的语法和 Playwright 的 API。
以下是一个示例代码,可以悬停并单击一个具有 `id` 属性的元素:
```python
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
await page.goto('https://example.com')
element = await page.query_selector('#element-id')
await element.hover()
await element.click()
await browser.close()
asyncio.run(main())
```
请注意,这里的 `asyncio.run(main())` 是 Python 3.7+ 中的语法,用于运行异步函数 `main()`。如果您正在使用较早的 Python 版本,可以使用以下代码:
```python
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
await page.goto('https://example.com')
element = await page.query_selector('#element-id')
await element.hover()
await element.click()
await browser.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```
如果您想要在单击之前等待一段时间以确保页面上的一些内容已加载,可以使用 `asyncio.sleep()` 方法。例如,以下代码会等待 2 秒钟,然后悬停并单击元素:
```python
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch()
page = await browser.new_page()
await page.goto('https://example.com')
element = await page.query_selector('#element-id')
await asyncio.sleep(2) # 等待 2 秒钟
await element.hover()
await element.click()
await browser.close()
asyncio.run(main())
```
请注意,这里使用了 `asyncio.sleep()` 方法而不是 Playwright 的 `page.wait_for_timeout()` 方法,因为在 Python 中不支持后者。
阅读全文