当使用Python进行Web自动化测试时,一个常见的任务是与浏览器进行交互。Pyppeteer是一个Python库,它可以通过DevTools Protocol与Chrome浏览器进行交互。
在本文中,我将展示如何使用Pyppeteer来进行Web自动化测试。
首先,需要安装Pyppeteer库,可以通过运行以下命令来安装:
pip install pyppeteer
安装完成后,我们就可以开始编写代码,首先导入所需的模块:
import asyncio
from pyppeteer import launch
接下来,我们创建一个异步函数来启动浏览器并打开一个新页面:
async def main():
driver = await launch()
page = await driver.newPage()
然后,我们导航到百度搜索页面并等待页面加载完成:
await page.goto('https://www.baidu.com')
await page.waitForSelector('#kw')
接下来,我们将输入搜索关键字,并点击搜索按钮:
await page.type('#kw', 'Web自动化测试')
await page.click('#su')
然后,我们等待搜索结果加载完成,并获取结果的标题和链接:
await page.waitForSelector('.result')
results = await page.querySelectorAll('.result')
for result in results:
title = await result.querySelectorEval('.t', 'element => element.innerText')
link = await result.querySelectorEval('.t a', 'element => element.href')
print(f'Title: {title}')
print(f'Link: {link}')
最后,我们需要关闭浏览器:
await browser.close()
现在,我们可以运行我们的代码了。使用asyncio库来运行异步函数:
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
运行代码后,您将看到百度搜索结果中每个结果的标题和链接打印出来。
这就是使用Pyppeteer获取百度搜索结果的完整过程