1 Star 0 Fork 0

lgc653/e2e_demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
baidu.test.js 2.03 KB
一键复制 编辑 原始数据 按行查看 历史
lgc653 提交于 2024-08-02 16:41 . e2e
const puppeteer = require('puppeteer')
let browser
let page
let screen = {
width: 1920,
height: 1080
}
beforeAll(async () => {
browser = await puppeteer.launch({
args: ['--start-maximized'], //浏览器窗口最大化
headless: false, //开启或关闭无头模式
ignoreHTTPSErrors: true,
slowMo: 250, //slow down by 250ms, 减慢运行的速度,更好的看清楚操作
timeout: 15000,
ignoreHTTPSErrors: true, //若访问的是https页面,则忽略https错误
devtools: false //打开或关闭浏览器的开发者模式
})
page = await browser.newPage()
page.setViewport({
width: screen.width,
height: screen.height //当前屏幕的长和宽
})
await page.setJavaScriptEnabled(true)
})
afterAll(async () => {
await browser.close()
})
test('1. 打开百度; 2. 输入关键字搜索', async () => {
//声明是异步函数
await page.goto('https://www.baidu.com', {
waitUntil: 'networkidle2' //等待网络状态为空闲的时候才继续执行
})
//添加assertion,验证百度的标题是否正确
const pageTitle = await page.title()
await expect(pageTitle).toMatch('百度一下,你就知道')
await page.focus('#kw')
await page.type('#kw', '特斯拉')
await page.click('#su')
await page.waitForSelector('h3.t a')
const list = await page.$$eval('h3.t a', elements => {
const ctn = elements.map(v => {
return v.innerText.replace(/\s/g, '')
})
return ctn
})
console.log(list)
let matchCount = 0
for (var i = 0; i < list.length; i++) {
if (list[i].indexOf('特斯拉') !== -1 || list[i].indexOf('Tesla') !== -1) {
matchCount++
}
}
// 检索结果中至少有5条和关键字匹配
await expect(matchCount).toBeGreaterThanOrEqual(5)
// 截图留存
await page.screenshot({
path: 'baidu-tesla.png',
type: 'png',
fullPage: true
})
}, 60000) //设置timeout时间为60000 ms
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/lgc653/e2e_demo.git
git@gitee.com:lgc653/e2e_demo.git
lgc653
e2e_demo
e2e_demo
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385